Refactory plugins

Plugin class:
* Add optional parameters `name` and `enabled` to the constructor.
  You can just use the class variables `name` and `enabled`.
  Change plugin variable to `noname` and enabled variable to `False`.
* Include new attribute 'description' to include short documentation
  about the plugin. By default it uses the docstring of the class
  or fall backs to a message that there is no documentation.
* Add repr() facility.

Plugin Manager:
* Log a message when loading external plugins discovers that
there is no plugin inside a module.

Functional tests and unittest for Plugins.