Fix phantom js observers

This should fix phantom js specs.

Main problems: classList changes & setAttribute dont fire mutators in Phantom.js.

Solution:

- Observe classList for elements with attached view, but only if classList doesnt fire mutations. Patches classList methods, removes patches when View is recycled (does a check)
- Patch setAttribute to fire up custom mutation event if it doesn't (does a check)