Dependancy manager

First cut of the dependency manager that can be used starting now IF the class doesn't require to be constructed by a specific object (ie. variable constructor arguments).

That will most certainly be implemented using variadic templates so I'll wait for Stephen to make his c++11 PR.