Add lots of responsive elements to the design

Lots of CSS/HTML restructuring plastered all over to respond to different screen
widths to provide a hopefully usable site across anything from 320px in width to
larger.

Closes #16