Use read/write locks for construction of the final dependency graph.
Value specifications (and properties) are normalised - compare by identity.
Use a more efficient iterator over digest based resolution candidates.
Guard against possible NPE if finished state happens near a discard.
Start work to separate the execution plan and source of actual jobs from the states used to create it.
Refactor graph execution logic to separate into planning and execution. Applied to SingleNodeExecutorFactory. DependencyGraphExecutor interface no longer generic.
Skip the test if null is passed.
Recognise currency targets.
Merge commit '2eccd85da8f4cca07b410ad7808d71d2e583dd2a' into topic/EXECUTION_PLAN
Refactor MultipleNodeExecutor into the ExecutionPlan pattern.

Don't use a queue coupled into the executor to pass result fragments into the cycle - call methods on the cycle directly which can in turn mark the node execution states.

Tests currently fail.
Merge commit '9c2ec9f2ec5b354e0e1ac26b1669b8e68c73e8b3' into topic/EXECUTION_PLAN
[PLAT-3584] Fix compilation errors from unit tests.
[PLAT-3584] Only issue a fragment if the execution is incomplete.
[PLAT-3584] Unit test for ExecutingGraph and fix for errors found.
[PLAT-3584] Unit test for the MultipleNodeExecutorFactory class.
[PLAT-3555] Adding yield curve node sensitivities and yield curve node P&L series for FX forwards.

Previously, the sensitivity of the leg to the exogenous curve was ignored.
[PLAT-3555] Removing unused code
[PLAT-3614] Checking for equal tenors / maturities in a curve before the analytics library is called
[PLAT-3614] Checking for equal tenors / maturities in a curve before the analytics library is called
[PLAT-3366] Add view compilation timer metric
[PLAT-3366] Add cycle execution time metric
PLAT-3538 - Allow a snapshot to tick

Add ability to pull manipulations from the view defintion in addition to the view cycle execution options.