Plugin Manager refactor, wip

Attempting to make it a little easier to test
Filter facter facts to be less than 256 chars.
Refactor some more, add docstrings, add getPluginManager

modules that need to run plugins should import 'plugins'
and call plugins.getPluginManager(). This provides a simple
singleton-ish reference, so we only create PluginManager()
once (and only find/import plugins once)

Remove SLOTS, we figure it out from the set of slots
conduit classes provide.

Add a specific exception for no api_version in plugin
modules (PluginImportApiVersionMissingException)

Move .run back to PluginManager from BasePluginManager,
since the rest of the impl is there.
Use plugins.getPluginManager() here

Prevents creating multiple instances of PluginManager()
(and loading plugins multiple times)
update tests

(more work to be done here)
Merge branch 'awood/plugins' into test_refactor_merge

Conflicts:
	src/subscription_manager/plugins.py
merge and stylish cleanup
Merge branch 'awood/plugins' into alikins/plugins
Use getPluginManager() here
Merge pull request #499 from candlepin/alikins/plugins

Alikins/plugins