Added simple beetle context class.

Instead of accepting an evergrowing number of things that can be extended, the register functions now just have to accept a BeetleContext, and the config given them in the config.

The BeetleContext is just a container for the various components, that would otherwise be in the signature, and it's really simple. But hell, it works, and enables me to add new stuff without breaking everything (!).