Services

This is an attempt to make custom AsyncMultiService usable inside an advanced master.cfg or a buildbot plugin.

You can start review by looking at the doc in the end of the patch. I hope this explains the idea.

The class hierarchy is not very obvious indeed . AFAU, its
```
Service -> MultiService  -> AsyncMultiService -------------> ReconfigurableService
        \> AsyncSercice -/                                /
                               ReconfigurableServiceMixin/
```
I don't want to fight all the battle at once here, but I would like in the end to have that the straight hierarchy:

```
Service -> MultiService -> BuildbotService -> BuildbotClusteredService
```
with BuildbotService being async, multi and reconfigurable
and BuildbotClusteredService adds the clustered complexity

This in mind, I will rename my ReconfigurableService to BuildbotService, so that when we have the final simplified hierarchy, its not an API change.

@djmitche , would you agree?