Time check

This is ugly and hacky and I don't know how to test this.

__PROBLEM:__
Occasionally the lease task will run right up to it's deadline (within
1/10 sec) and then return an empty list when there _ARE_ tasks in the
queue. This seems to happen when there is a lot of read/write contention
on the queue.

__HACKY SOLUTION:__
Check the length of the call and we're within that deadline window and
we get an empty list, then raise a TransientError (which also is a sign
of queue contention issues).

__POTENTIAL AVENUES OF INVESTIGATION:__
See if this problem happens when leasing asynchronously.
Complain to google to throw a DeadLineExceededError (which I've _NEVER_
seen in this context)
Sit in a corner and cry.

Builds on #95