ENH: Add python object HDF5 read/write support

Ready for review if we decide to use it.
Does it make sense for this to be `'key_{0}'` rather than `'key{0}'` ?  I can't tell whether this is ever going to be a human-read value.