Add context switching to config.

- Add ServerContext and GlobalContext to switch contexts back and forth
  :
  when editing fluently.
- Add a GetServer to stop directly accessing the map.
- Clean up tests a little bit.
Move bot server to its own file.
Add new functionality for managing config.

- Add locking mechanisms for the configuration.
- Add ways to dump and reload the config file.