Added a Forum

Resolves #498.
Resolves #895.

http://jenkins.buttonweavers.com:8080/job/buttonmen-AdmiralJota/142/

Depends on #862 for hashbang and color support.

@blackshadowshade: I'm guessing glassonion will probably ask you to look at the SQL in this one as well.

@cgolubi1: You'll probably want to pay special attention to ```Env.prepareRawTextForDisplay()```, as this is what now santizes user input for display (for both chat and the forum). We're also putting the raw user input into the ```data-rawPost``` attribute in ```Forum.buildPostRow```. I believe this is safe, but I wanted to give you a heads up anyway. It probably deserves a little extra testing attention.

I assume that as soon as this goes online, there'll be a half dozen new tickets with suggestions for improvements...
I may be missing something: the idea of the deepEqual test is to make sure nothing unexpected within the `Forum` module is modified by Forum functions.  I think you're using this new `CopyAllProperties` method to backup and restore the Forum object *before* grabbing the `ForumPost` object for the check.  Doesn't this have the side effect of rendering the deepEqual test a noop (at least as far as changes in the Forum module are concerned)?