HTML5: remaking the html markup for the chat

A lot of changes to make it easier to control the design from the css.
The actions in the chat now only add or remove classes from the elements instead
of changing their css, so the css is responsible for showing or hiding them
and controlling how they appear in the screen.
HTML5: pushing layout changes from @tylercopeland