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.
hmm.. point taken. still this regex looks ugly to me. Alas it's working clean and proper, let's do it that way ;)