Factory Improvements part 1

Added the ability to specify the PSR Log instance that should be used in
the Factory.
Factory Improvements part 2

The Factory now accepts an instance of a SQL Generator that will be used
to construct the database hander.
Factory Improvements, part 3

Factory now accepts a custom Populator.
Added the ObjectCreator, which will act as a safe wrapper to create an object instances.
Gateway Improvments, part 1

Added the EntityManager object which will provide handling for common
Entity tasks and remove some of the complexity from the Gateways.
Factory Improvements, part 4

Added the ObjectCreator to the Factory for safe instance creation. Moved
the Executor and Database class creations to use the object creator.
Factory Improvements, part 5

The Executor can now be changed via `setExecutorName()`
Factory Improvements, part 6

The Database class can now be overridden in the Factory.
Improved EntityManager documentation.
Gateway Improvements, part 2

Updated the Gateway (and by extension added support into Database and
Factory) to use the EntityManager to remove some of the
responsibilities.
Gateway Improvements, part 3

Added a new Actions concept to the library. Database handling (which is
currently being performed by the Gateway) will be consolidated into an
Action class, like the Deleter. This allows easier testing and will
remove some of the responsibility from the Gateway.