Only save/restore height once when scrolling up.

This is a fairly sizeable performance improvement since computing the
scroll height involves layout and styling and a bunch of other stuff.
Only save/restore height once when scrolling down.

This breaks `<` in some way that I can't quite identify yet.
(Mostly) fix goto-start.

There's still some weirdness where it doesn't scroll *all the way* to
the start.
Merge branch 'compositing' into better-scrolling

Fixes #61.
Disable inertial 'overscrolling' on OS X.
Properly set up flexbox ordering.

Compose/filter bars are no longer absolutely positioned. Fixes #54.
Fix 'padding' at bottom of message pane.
Redo the pane layout to use flexbox.

This makes it actually *work* again and lets us get rid of a bunch of
width-recalculation code.
Go back to absolutely-positioned bars.

This breaks #61 again but there are lots of reasons to prefer absolute
positioning for the bars (we don't need to resize the inner message pane
div, we can 'fade out' bars to show messages underneath, etc.).