Change the way the topology is saved in the hdf5 files

This fixes issue #56, but it requires changing the HDF5 trajectory "contract". Once this PR goes through, I will change the page on the wiki.

The topology is still stored as JSON, but instead of being an attribute on the root node (which are limited to 64KB), it's in a length-1 array of strings.