Refactored "BotConfig" class and added "AppContext" class.

BotConfig now reads its data from a "Properties" object.  Also, it's no
longer a singleton, though it is still treated as such.  This makes it
easier to unit test.

I also added the "AppContext" class for storing objects that are used
throughout the application.  BotConfig is stored in this object, since
it is accessed in many different places thoughout the codebase.

And I added a "ROOMS" property to BotConfig, so you can define which
room(s) you want the bot to join.
Use a logging Filter to only show log messages from our app.
Markdown file is markdown.

Markdown file is markdown.
Fixes grammar.
Changes in response to code review.
Get the package name from "Main" instead of the anon class.
Merge pull request #20 from mangstadt/master

Refactored "BotConfig" class and added "AppContext" class.
Created / Adapted interface to prepare for changing the Login and Authentication mess to a properly decoupled state
Implemented the login method with the new interfaces
Light refactorings to Default Bot and Program (extractions mostly)
Completed a duplication of functionality with both description methods, deprecated old stuff in StackExchangeChat
Finished moving to ChatDescriptor Interface.
Removed Deprecated MessageListener Interfaces, Implemented trimming for Javadoc messages, auto-formatting in PrintUtils
Refactoring in  StackExchangeChat, added reply functionality to javadoc