Reworked the Pool class to call the driver directly.

Previously it used the getDriver function. This also moves the default
loading of the Ephemeral driver to the constructor.
Reworked the Pool class to allow generation of custom Items
Merge pull request #105 from tedivm/interface_cleanup

Interface cleanup