Added H5File tests + global ID registry + proper closing of file handles

- Added hdf5.library module to hold global functions
- Added library.{objectCount,findObjects)
- Added overridable H5ID.doClose() and H5ID.afterClose()
- Added H5ID::invalidateRegistry which invalidates ids of dead objects
- H5File.close() now also closes all child handles and invalidates registry
- Added tests for H5File open/create modes
- Added H5File.mode()
- Added file.isHDF5()