Modernize handling of references and support #undefs in JLD

I renamed `HDF5ReferenceObj` -> `HDF5Reference` (although if you feel strongly I'd be happy to change it back) and eliminated `HDF5ReferenceObjArray` and `HDF5ObjPtr` since with `HDF5Reference` immutable they seem unnecessary. Some minor changes to MAT_HDF5.jl are also necessary; I'll push them simultaneously.

`#undef`s are stored as references to null, which seems to be idiomatic HDF5. Fixes #23.