Refactoring to allow creating mocks by constructor.

Pushed out the creation of instances from imposterizer to a separate object. Should be easier to add new features around mocking/partial mocking abstract classes.
Avoided a singleton.

Reworked the code so that we can avoid more singletons. It also fixes a failing test.
Rename job for clarity.
Refactoring for better clarity.
Rename job

Prepping for extracting an interface.
Extracted an interface. Not used widely yet.
Steps towards insulating cglib-dependent code
Insulated most cglib in a separate package

Majority of classes in this package are not public. I'd like to insulate all cglib so that it can be replaced easily.
ClassImposterizer does not have to be public
Further insulation of cglib
Removed unnecessary interface.
Tightened coverage.
Fixed the test and added a TODO.
Moved classes to better packages.

This change fixes #107 at least for now.