Issue 522: Linear comment attachment algorithm

[Issue 522: Linear comment attachment algorithm](https://code.google.com/p/esprima/issues/detail?id=522&thanks=522&ts=1396463391)

Linear comment attachment to replace the quadratic comment attachment algorithm.

Before:

|Source|Size(KiB)|Time(ms)|
|:--:|--:|--:|
|Underscore 1.5.2|42.50|31.30|
|Backbone 1.1.0|58.70|60.02|
|MooTools 1.4.5|156.70|211.06|
|jQuery 1.9.1|262.10|1461.83|
|YUI 3.12.0|330.40|759.88|
|jQuery.Mobile 1.4.2|442.20|3713.60|
|Angular 1.2.5|701.70|1175.43|
|Total|1,994.30|7,413.12|

After:

|Source|Size(KiB)|Time(ms)|
|:--:|--:|--:|
|Underscore 1.5.2|42.5|5.34|
|Backbone 1.1.0|58.7|5.81|
|MooTools 1.4.5|156.7|25.69|
|jQuery 1.9.1|262.1|69.75|
|YUI 3.12.0|330.4|50.95|
|jQuery.Mobile 1.4.2|442.2|118.27|
|Angular 1.2.5|701.7|93.07|
|Total|1994.3|368.88|

Speed up: **20.1x**

Note that this is only 1.8x slower than without comment attachment, which is exactly the performance without comment attachment a week ago before the series of optimizations.