perf(jqLite): don't recreate the Node.contains polyfill
refactor(jqLite): drop Node.contains polyfill

Node.contains is supported on IE5+ and all the other browsers we care about.
refactor(jqLite): don't recreate mouse event map
refactor(jqLite): remove code duplication
perf(jqLite): don't use forEach in #off

off() is called on each element removal, so we want to make it as fast as possible
perf(jqLite): improve createEventHandler method by switching from forEach to for loop
perf($compile): optimize publicLinkFn
perf(jqLite): optimize event listener registration
refactor(jqLite): remove legacy code to support IE8 and older
perf(jqLite): don't register DOM listener for $destroy event

This even is fired purely within jqLite/jQuery so it doesn't make sense to register DOM listener here.

6% improvement in large table benchmark for both creation and destruction