Add time check to lease call

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.
Fix a test and flip a condition
Merge branch 'lease_deadline' into time_check
Change exception to DeadlineExceededError
Add test for time_check
Track the number of insert success and failures on Context.

This adds two new properties to Context which tracks the
number of tasks that were successfully inserted and tasks
that failed to be inserted.
Update context unit tests for insert_tasks changes.
Clarify comment in _handle_tasks.
Use get method when checking REQUEST_ID_HASH.

This will prevent unit tests from blowing up when not set.
Resolves issue #53.
Add unit test to ensure counters are calculated correctly.
Merge pull request #104 from tylertreat-wf/get_request_id_hash

Use get method when checking REQUEST_ID_HASH.
Merge pull request #103 from tylertreat-wf/insert_counter

Track inserted/not-inserted tasks on Context
Merge pull request #96 from tannermiller-wf/time_check

Time check
Merge branch 'master' into auto_context

Conflicts:
	furious/context/context.py