Add Items to Scroll List Dynamically

Allow dynamic injection of items into the ScrollList.

This PR requires updated usage of the ScrollList, a la:

```javascript
var itemSizeCollection = new ItemSizeCollection({
  maxWidth: 100,
  maxHeight: 90,
  items: [{ width: 80, height: 60 }]
});
var scrollList = new ScrollList(host, itemSizeCollection, options);
```

Unit Tests
-------------

- Updated existing and added new to cover new behavior.

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 add_items_to_scroll_list_dynamically && 
./init.sh && 
grunt qa
```

- Should see no console errors.
- Open the ScrollList demo page.
- Change the number of items by using the controls in the bottom right of the page:

![dynamic-items-1](https://f.cloud.github.com/assets/4155584/2506595/ef859d64-b3a9-11e3-8d7d-80830202987d.png)

- Insert items at the dev console:

![dynamic-items-2](https://f.cloud.github.com/assets/4155584/2506596/01e608e0-b3aa-11e3-914f-ce9096b7f475.png)

- Keep playing around...

- [x] Should be able to insert items at the beginning of the list
- [x] Should be able to insert items in the middle of the list
- [x] Should be able to insert items at the end of the list
- [x] No jumpiness after insertion of items
- [x] No re-rendering of the items
- [x] Adding items wider or taller than 1022 pixels will cause such items to be scaled down.

@lancefisher-wf 
@robbecker-wf 
@patkujawa-wf