Implement plugin model

Implement plugin model.
Change Options to not inherit from IniReader

No longer inherit Options from IniReader, add property instead.
Change console title.

Change console title to contain the channel.
Fix exception with JSON objects

Fix JSON parse errors that occasionally crop up.
Error handling for JSON parsing

Add try/catch with diagnostic log for JSON parsing.
Move boolean parsing to a helper

Move boolean parsing to a helper method so it can be reused.
Refactored async task, improved betting

Refactored async tasks.
Allow betting to be enabled/disabled.
Refactor how the bot loads and saves data

Change how the bot loads and saves data files.  Previously it was in an
ad-hoc manner reimplemented per-class.  Now we have centralized saving
and loading of data.  Currently at the cost of using less threads, so
shutdown file saves is now single threaded for now.
Automatically load user data

Automatically load user data instead of relying on a call to LoadAsync.