move todo mutation to after main-relationship storage during discovery, so the mutators have access to the stored relationships for context. Add source-relationship context to the DiscoveryTodo to enable this post-storag mutation before the next round of discovery. Add equals() and hashCode() to presets to prevent them building up in sets during discovery.