New plugin api

Take a look at the readme for lots of documentation about the introduction of a number of new "plugin types".

- runner
- provider
- job (this will be what most of the current plugins will move to)
- basic (backwards compatible with previous plugins)

All plugin types (except runner) have the possibility of defining `worker` and `webapp` components.

### Exciting things this will enable

- multiple runners, each project can specify which one to use
- multiple providers; github, gitlab, bitbucket, etc.
- more declarative syntax for `job plugins`