[WIP] Adding more dependency injection.

Here's the d.o issue https://drupal.org/node/2281491

As of the creation of this pull request there is only one commit that adds a create method. It isn't adding any benefit yet and it is a work in progress.