V2

v2 replaces several of its old incomplete or non-compliant shims with @WebReflection's excellent [ie8] and [dom4] libraries (both referenced now as submodules, as is [es5-shim]), and introduces an actual test suite that runs in both IE8 and modern browsers. Some things to do before merging/releasing:

- [ ] flesh out unit tests (particularly, more DOM+CSS)
- [ ] update the README with links to new libs, etc.
- [ ] update the LICENSE to reference included libs
- [ ] consider #17: replace brain-dead CSS OM shim with [a more complete implementation](https://github.com/brettz9/jml/blob/master/shims/CSSStyleDeclaration.js)
- [ ] consider jQuery compatibility unit tests, e.g. for #24

And, because this all started as a way to get IE8 working with d3, let's also consider doing the following:
- [ ] add d3-specific unit tests (e.g. for the `d3.selection#style("opacity")` shim, see #13)
- [ ] #1: fix `d3.selection#sort()` in aight.d3.js
- [ ] review #25

[ie8]: https://github.com/WebReflection/ie8
[dom4]: https://github.com/WebReflection/dom4
[es5-shim]: https://github.com/es-shims/es5-shim
if standards have those as enumerable I will … setters returning values are misleading for the reason you might return something different and expect that value but the operation you thought was the result of a setter will break such expectations ;-)

```js
var o = {};
Object.defineProperty(o, 'test', {set: function(){return 123}});
var value = (o.test = 456);

// you see what I mean ?
value // 456
```

If it's style, drop it, 'cause it's a misleading one. Cheers