Horizontal scrollbar

## Problem

We want a horizontal scrollbar.

## Solution

Add one. I did this by modifying the existing scrollbar to add an option to make it horizontal. Then you instantiate two scrollbars, one vertical, one horizontal. The scrollbars now also work for peek and single modes. They do this by using the item map, if one is available, instead of the list map.

## Tests

Updated.

## QA Instructions

Check out the branch, tests should pass. Open the scroll list demo, zoom in, then fiddle with the horizontal scrollbar. No regressions.
I find it confusing, but that is probably because `self` is used in Python. If you look at the style guide, we are supposed to use `that` in some weird cases, but I don't really understand it... :-)