site.js: Add message form validation

Validate the contents of the message form and provide visual feedback
for bad data.
index: Separate the form from the overlay

This nests the form inside of an overlay div, decoupling the form from
the centre overlay.
index: Add form processing logic
site.js: untabify