Added local reference to Array#push() to replace instances of Array.prototype.push.apply()
Removed NodeCollection#clean() (so now it inherits from Array), removed the `allowEmptyStrings` parameter from Array#clean(), and fixed $.isEmpty() to consider empty NodeCollections as empty arrays.
Using `this` and `arguments` instead of storing them in a variable first in some places.

Event though storing them in a variable improves minification, using the original name if it's not used in too many places improves gzip compression.
Refactored event handling to be more concise and take up less space.