Adds a Bot Manager

This is the re-pull. The commits should be a lot cleaner.

See #220 for the old pull and for all the juicy information about what this does.