IE8 Compatibility

Before this can be merged, component/css#9 needs to be merged.

Dependencies added:
 * `matthewp/keys` for `Object.keys`
 * `matthewp/text` for correct `textContent`/`innerText` manipulation
 * `component/each` for `Array#forEach`

In addition, in some cases, IE8 treats document fragments differently, so I've updated those here. (other browsers still pass the test suite)

A lot of the unit tests needed to be updated as well, to use IE8-friendly DOM/syntax.