Replace CSS columns with flexbox

Columns are a bloody nightmare with a horribly broken implementation in Chrome.
This allows us to get rid of a bunch of fixed media queries (yay!) and instead
dynamically reflows into columns if the space allows.