Fixed some incompatibilities and optimized

Fixes -
- Any classList modification of an element with no className would prepend a whitespace to the beginning of the className.
- classList.add would add duplicate classes.
- Actually made use of the this._classCache optimization.

Optimization -
- Cached Array.prototype instead of creating a new array literal for every method needed.