Do recreate topology if the user did not edit it (fixes #833)
Add tests for de/serializing
Merge branch 'idempotent_topologies' into develop