Performance tuning: Array.push instead of Array.concat

This simple change provides a massive speed up in Firefox (See  http://i171.photobucket.com/albums/u320/boubiyeah/ScreenShot2014-11-13at161151_zps32244a0b.png)

concat creates a new Array everytime and it quickly made the GC choke. Strangely, while chrome do get a small performance boost, it's nowhere near as dramatic as in FF (they either have a better gc or concat implementation).

I dislike that imperative style compared to the previous functional style but I think the style/perf tradeoff is worth it. 
Very interesting @Naddiseo 

I dislike the cached length micro optimization to be honest; they're pretty much always insignificant in the grand scheme of things.

Strange how Chrome for loops' performances are all over the place across the different versions.

I like push.apply, it's terse and the benchmark perfs are roughly on par with the loop version on both browsers. Happy to change the PR to use that instead; unless @lhorie actually want to tackle from a different angle.