Plugins

Docs is still missing.  Basic infrastructure is in place.

All kind of comments are more than welcome :)

- [x] basic infrastructure
- [ ] adopt it for built in stuff
  - [x] www
  - [ ] slaves
  - [x] change sources
  - [x] schedulers
  - [ ] steps (seems the most "interesting")
- [x] provide unit tests
- [ ] update release notes
- [ ] update documentation
My thinking is: majority of plugins (if not all) will be loaded during the config-loading process, so every bail out will push the user back.  ``config.error`` offers a mechanism to "collect" all errors and give them at once, so it might look a bit friendlier for the user (especially for a **new** user).