Create a light weight dependency injection framework

This pull request implements a light weight dependency injection framework. `PPObjectConfigurator` is responsible for creating an instance of classes and setting all required dependencies. All classes within application code should ask `PPObjectConfigurator` for an instance instead of creating it themselves and trying to setup dependencies. That way, the knowledge of dependencies are at one place and there is a less chance of making mistakes while setting up correct dependencies.

Currently the app is quite small. In the future, if this app becomes quite big, we should probably reach out for a [dependency injection framework](http://www.typhoonframework.org/).

__Note:__ `PPObjectConfigurator` is fully unit tested.