backoff-controller: update unit-tests, refactor code

The current unit-tests rely on the code requesting a delay of x
milliseconds resulting in an actual delay of, at most, (x+100)ms.

Operating systems make no such guarantee and we have had a few cases
where dCache builds have failed because of this.

This patch refactors backoff-controller and the unit-tests to remove this
assumption.  The backoff-controller was simplified.  The superfluous builder
was removed.  The unit-tests updated to remove dependency on exponential-
backoff algorithm, add assertions of the overall response and cover more
possible behaviours.

Target: master
Requires-notes: no
Requires-book: no
Patch: http://rb.dcache.org/r/6463/