Improve encapsulation and limit scope of MetellurgyCore.

Phase 1 to address #97

----
Additionally, simplifies `MetalInfoDatabase` in the following ways:
* Uses more suitable data structures internally so that set and retrieval code is simpler.
* `MetalInfoDatabase` is now ambivalent with regard to the source of its data and can handle any `InputSupplier`, whether a file, or CLASSPATH resource, or some other type.
* Less code due to leverage of guava I/O library

@odininon this should be clean and is ready if it is. If it is no longer a clean merge, please let me know.