Fix ScrollBar Exceeding Viewport Top/Bottom

There are two ScrollBar bugs that this PR addresses.
* When the ScrollList is dragged above or below it's bounds, the ScrollBar also exceeded it's bounds.
* When the ScrollList was zoomed out such that the ScrollList was shorter than the viewport, the ScrollBar would become taller than the viewport.

Solutions
* The ScrollBar positioning is now bound between `0` and the height of the viewport minus the height of the ScrollBar.
* When the ScrollList is shorter than the viewport, the ScrollBar height is set to `0`, since it isn't necessary to scroll something that is already completely visible.

**Unit Tests**
-----
Check that the ScrollBar height is set to zero when the ScrollList is zoomed out far enough.

**How To +10/QA**
-----
```bash
# skip the following steps if you've already initialized the project
$ git clone git@github.com:WebFilings/wf-uicomponents.git
$ cd wf-uicomponents

# do not skip these!
$ git fetch && 
git checkout HY-1094 && 
./init.sh && 
grunt qa
```

* All tests should pass with no console errors
* In the ScrollList Demo, set the Fake Document to have 1 page. You should not see the ScrollBar. Zoom in, and the ScrollBar should appear.
* At the top or bottom of the page, click and drag so that the grey space above/below the ScrollList is visible. The ScrollBar should not move to overlap the header or footer.

---

Please review: @timmccall-wf @shanesizer-wf @lancefisher-wf 
FYA: @joshschlick-wf 
@timmccall-wf `_viewportHeight` is a measure of the portion of the ScrollList that is visible through the viewport (see line 302 of ScrollBar.js). `this._layout.getViewportSize().height` is the height of the viewport in pixels.