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.
Add InterruptedException awareness to the tests.
Merge pull request #6 from jordansissel/respect-thread-interrupt

Make the regexp engine respect via Thread.interrupt().  Will move check elsewhere but most of the commit is good as-is.