Introduce tool Duplicate Blocker and its spec

`Timecop.freeze` changes time, but does not return back at the end of the test. That is what `Timecop.return` does.

Please use block form of `freeze` instead. It is difficult to track down sporadic build failures with `freeze` that do not call `return`.

Thanks / sorry I didn't mention before

```
Timecop.freeze(begin_time + TIME_WINDOW + SLOT_WIDTH * 2) do
  assert_safe_calls :instance, 2, SHORT_TIME, 'arg'
end
```