perf(jqLite): use classList for  dding classes if available

All elements/browsers that don't have classList will still use the old setTimeout method.
perf(jqLite): optimize adding nodes to a jqLite collection

This code is very hot and in most cases we are wrapping just a single Node so
we should optimize for that scenario.
perf: optimize internal isWindow call

Each window has a reference to itself, which is pretty unique so we can use
that to simplify our isWindow check
chore: name the event callback used by ngClick and friends

This maskes looking at stack traces easier.

Since we generate the callbacks for each event type at runtime and we can't
set function's name because it's read-only, we have to use a generic name.
perf(jqLite): improve performance of jqLite#text

This change is not compatible with IE8.
test(jqLite): add a missing test for jqLite#text
perf(jqLite): cache collection length for all methods that work on a single element

This affects jqLite#html, #text, #attr, #prop, #css and others.
perf(ngBind): set the ng-binding class during compilation instead of linking
test(isWindow): add tests for isWindow
perf(jqLite): use classList for removing classes if available

All elements/browsers that don't have classList will still use the old setAttribute method