Add entry points for the plugins to setup.py
Rewrite the plugin system to use entry points

Everything should be fully backwards compatible.
To make a plugin compatible with the new system, just add an entry point in
the plugin's setup.py
Add a dependency checker
Add an empty dependency list to the base plugin
Autopep8 the code
Make plugins an instance attribute
Add plugins to the setup.py
Remove unused imports
Fix autopep8 mistake

Maybe I shouldn't trust automated tools so much.
Fix more blank lines
Merge branch 'setup-entrypoints'

Rewrite the plugin system to use entry points