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
Same here -- since schedulers are loaded into a config by importing them, why do they need a loader?

On the other hand, I've often felt that the requirement that users import everything makes the Buildbot learning curve a bit steep.  If there was some alternative, syntactically simpler method of making these objects available in the configuration, *then* plugins for schedulers, buildslaves, change sources, and steps might be worthwhile.

As a starting point, what if we injected `buildslaves`, `schedulers`, and so on into the namespace of the configuration file, and each had a getattr that was mapped to a plugin class:
```
# master.cfg

c.schedulers.append(schedulers.Nightly(...))
```

The dynamic loading is important -- we want to avoid importing unused code!