Some operations can take a lot of time to execute and
any duplication should be avoided.
This patch implements a compile step that detects
operations with same type, inputs and parameters that
produce the same result and merge them. Now operations
can generate a hash that represents their output result. They only
need to implement hash_output_params and hash any parameter
that affects the output result.
Only convert operations are implemented for merging right now.
And in another patch DenoiseOperation and DenoisePrefilterOperation.
Example of two denoise nodes with same parents and prefiltering. Only HDR option change.
| Before merging | After merging (HDR equal on both) | After merging (HDR different on one) |


