Object manager, second take

After feedback on https://github.com/OTRS/otrs/pull/165 this is the second approach to implementing an object manager for OTRS.

In comparison to the old approach, the new one

* doesn't need the Kernel::System::ObjectManagerAware class
* Separates the extra constructor arguments by type
* Uses a less intrusive way to adoption by the various classes: Only use the object manager in the constructor for now.