initial commit: plugins package
use custom multicommands

Allows to loads plugins lazilly from plugin directory.
cleaned up tests

- fixes renamed root command
- fixes ImportError when bad command/plugin was passed
removed unused imports
added plugins subpackage
use pkgutil for iterating over plugins

This will ignore magic modules such as __init__, because those are not real
commands.
initial commit: plugin manager plugin
put aliases in modules

Use __init__ module only for __version__ and __all__ variables.
put version information in module
use plugin root command `main`
removed unused imports
list installed plugins
install/uninstall plugins
solution discovery is not a static method anymore
added fetcher plugin
initial commit: core plugins testing package
tested fetch core plugin
[DEBUG] print traceback on breakpoints
Revert "tested fetch core plugin"

This reverts commit 3aa4b3e76d707bf1d1aad55985e6b08dff290033.
tested plugin manager core plugin