Compatibility fix for h5py 2.2

H5MD uses undocumented functions from h5py._hl. This fix makes it
work with h5py 2.2 in addition to whatever it worked with before.
In the long run, the generation of compact datasets should probably
use the documented low-level API instead.
Relax conditions on data when writing to observables
- allow scalar observables
- don't insist on matching dtypes (h5py will do the conversion)
- raise an exception if the shape of a value doesn't match,
  rather than silently dropping the value
Allow unit specifications for all supported data
Make center_of_mass a scalar observable in random walk example
Merge pull request #2 from khinsen/h5py_2.2

Compatibility fix for h5py 2.2
Merge pull request #3 from khinsen/better-observable-writing

Relax conditions on data when writing to observables
Merge pull request #4 from khinsen/write-units

Allow unit specifications for all supported data