Removed scheduler from codebase.

This has been removed in favor of using timing manager
Privacy fixing to generics using friend class

Now the interface is much more strict, and subclasses cannot access any of the
methods or objects contained in the superclasses.