Decoupled StackExchangeChat and JavaBot. 

Added Interface to describe classes that 'produce' stuff and can be subscribed to. Added interface describing minimal ChatInterfacing functionality (namely queryMessages and sendMessage). see #9
The `ChatInterface` should keep track of what rooms it has joined.  Then, you could have a zero-argument `queryMessages()` method that checks all rooms for new messages.