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. 
For some more performace, might I suggest caching the length and `cached[i].nodes`:
```
var _nodes = cached[i].nodes;
for (var j = 0, l = _nodes.length; j < l; j++) {
    nodes.push(_nodes[j]);
}
```
or maybe (not sure how `for()` vs `.apply()` compares)
``` nodes.push.apply(nodes, cached[i].nodes); ```