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)
Trying to detect whether `obj` is an element or `obj.div` is an element. Seems like this function may be called with `obj` being a regular object with left/right/etc properties but not having a `div` property. This was particularly important for IE8.