Add sticky headers to the sidebar

This branch adds sticky headers to the sidebar. The headers should push on change (they do in my QA, please try and break them).

I know I should probably add some tests and wasn't quite sure what or how to test this. Suggestions welcome.