Add basic plugin interface
Begin plugin refactor
WIP: stash exploratory plugin changes
Merge remote-tracking branch 'refs/remotes/origin/master' into plugin-interface

Conflicts:
	haas/plugin_manager.py
	haas/utils.py
	setup.py
WIP: Implement plugin manager on stevedore
Add stevedore to setup.py
Add BasePlugin with some default behaviour to allow enabling plugins
Add plugin enabling to PluginManager
Fix plugin manager
Consistency in plugin manager
Add basic test for --with-coverage option
Make haas application and plugin manager slightly more testable
Rename extension_managers to hook_managers for more flexibility
Add help text for plugin enable option
Add infrastructure for "driver" style plugins (of which only one
instance is allowed)
Use unittest.TextTestRunner as a haas test runner driver
Access test runner from plugin manager
Rename *Plugin to *HookPlugin
Add tests
Add tests