Make the regexp engine respect via Thread.interrupt().

The use case is that some regexp executions can take exponential time.
A documented case and explanation is found here:
  http://swtch.com/~rsc/regexp/regexp1.html

In cases where exponential runtime is undesirable, it would be nice if
we could interrupt the engine. To do this, running the pattern in a
separate thread and then interrupting that thread when it doesn't
complete on schule.