dirty hashy fix
Aggregte Root Marshal
Extracted out AggregateRoot so the interface is now AggregateRoot and
not the specific diff handler that is included.
Merge branch 'feature/dirty_hashy_cant_handle_complex_data_structures' into develop