Don't hold the underlying file/channel open for longer than necessary.

When loading from a database, once read and/or mapped the file/channel can be safely closed.
(Even when using MEMORY_MAPPED, once we have the mapped buffer the original file can be safely closed without affecting the buffer.)
Discard the reference to the underlying buffer during close(), and throw ClosedDatabaseException on subsequent database access.

Currently clients can continue to access the database even after it has been closed. This prevents that, and should also help ensure the underlying database is garbage collected.
Ensure all tests close the database reader when finished.
Merge branch 'drop-buffer-on-close' of github.com:divolte/MaxMind-DB-Reader-java into divolte-drop-buffer-on-close
Minor consistency fixes and merge fix
Update change log and readme
Tidied code