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.
This LOC is too sloppy/mysterious to admit as is. Why would it fail? Can you catch a more precise exception? What does "still perform the search" mean?

This approach of an imitation worker is really klunky. Once we better understand the possible reasons for failure, I'd like to excise this if the impact of doing so is low.