Driver Singleton cleanup

  * Removed the named parameter `DriverSingletons` as it wasn't safe with Tang
  * Added the service event handlers to the class `DriverSingletons` as a dependency instead to make sure they are only instantiated once per Driver.