Add a main loop for the bot

Instead of depending on the Zulip Client's main loop, which is run in a
separate thread.

This should let me add a command line listener.