Ie8

This includes various fixes I've done to support IE8 (for issue #333).
It changes `Object.defineProperties` to separate `Object.defineProperty` and uses a custom DOM element for IE8.

Also, there's some work done various styles that weren't being applied correctly because IE8 doesn't support `rgba` and a few other properties.

The only thing that is missing is positioning. IE8 doesn't include `height` and `width` in `getBoundingClientRect` so I've tried to remedy that but it seems there still more thinks around the `BoxPosition` that I am not figuring out that ends up setting values like `top` and `bottom` to `NaN` because some values are unset and so then it display it incorrectly.

However, the positioning issues aside, this PR does make vttjs work fully on IE8 (assuming you've excluded the text-encoding module), though, positioned incorrectly. ![](http://f.cl.ly/items/3P2c0p402D333U0y1z1W/Screen%20Shot%202014-11-21%20at%2015.01.10.png)
This is so we can support IE8. At the top of the constructor, we check to see whether we're in IE8, if we are, we're creating a custom DOM element to apply `Object.defineProperty` on. All the references in the constructor are to `cue` which is originally set to `this` but redefined to the DOM element. In IE8, we want to return that DOM element as the object that we created from the constructor.