Move regex searches to a web worker to stop the browser from hanging

This fixes #957 (currently closed anyway) by asynchronously performing regex searches of the page in a separate thread. It holds two main advantages over performing the regex synchronously:

* The UI doesn't hang while waiting for each search to complete, which is better UX.
* The workers can be terminated before they complete. When the search terms are updated, the previous search with the old terms is terminated and a new one is started, instead of wasting time waiting for the old one to complete first.

This has been tested on the [example](http://build.chromium.org/f/chromium/perf/dashboard/ui/changelog.html?url=/trunk/src&range=217147:224845&mode=html) from #957, and feels like a great improvement over before.
What does this method do? You have to carefully read the body of the method to understand that. Can you briefly explain its job via a comment?