Make JldFile/JldGroup/JldDataset contain HDF5File/HDF5Group/HDF5Dataset

This is one possible solution to #36
Revert "Revert "Don't close datasets, groups, and attributes from closed files""

This reverts commit 1a0e57d33cec9866401346bfe03c73d6ac704138.
Remove most toclose attributes

Since we no longer alias IDs, there's no longer a legitimate reason not
to close most objects when they're finalized. The only exception is
HDF5Datatype, which in some cases we can be sure points to a built-in
type that doesn't need to be closed.
Organize imports
Throw on access to objects from closed files

Because libhdf5 reuses IDs, we need to throw when a closed object is
accessed instead of relying on libhdf5 to do so. Otherwise, a user may
think they're accessing object X when in actuality object X is closed
and object Y has been opened in the same ID.
Merge pull request #39 from simonster/no-alias

Fix resource management issues