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 don't think i object to a generic Api.js parser, but every other place where we have an error in parsing, the error message says what the key is during which the failure occurred (see e.g. line 80).  So the error text should include apiKey here too.