Add a timeout that causes a spec failure on long running unit tests

* A proper unit test should always execute in less time than 1/10th
  of a second, and more likely 1/100th of a second. Having an upper
  bounds with a (ridiculously) large limit, that is still commonly
  exceeded, will ensure that out unit tests will remain proper unit
  tests and not devolve into integration tests.

  Over time we can (and should!) work to reduce this threshold
  even further.
Update flay and reek thresholds