Defined execution hashes for all ExecutableNodes

This implements `executionHash` for all `ExecutableNodes` and addes tests for each of them. It also changes `ExecutableOpHolder` to force context substitution on `StringParameters` during execute. With these changes, dispatchers are able to execute over frame ranges given any `ExecutableNode`, so this fixes #878.