Jtaylor/node loop rewrite

I went a little crazy.

I focused on efficiency in the rewrite. I think I made things a little easier, and cleaner by using a callback.

Rewrote all the tests, and confirmed it doesn't crash GitHub anymore.

Benchmarks show huge improvement when ignoring code and pre tags, and slight but noticeable increases everywhere else.

I added a few options to the options page.

Let me know what you think.

:gem: :moneybag: :ring: