tabletserver: deadline plumbing

Connection pool waits also make use of deadlines.
Memcache operations don't use this deadline, but
it's ok because we have bigger problems if those operations
timeout. This can be changed in the future if needed.
For now, deadlines apply only to queries. Transactional
operations do not have a deadline.
Begin will need a separate deadline. This will be a separate CL.
tabletserver: refactored some boilerplate code
Merge pull request #88 from youtube/suguwork

tabletserver: deadline plumbing
Handle IntegrityError separately, fixed vtgatev2_exception handling.
tabletserver: add support for tx pool timeout

We want to fail early, but not immediately, if the
transaction pool is full. So, we're adding a separate
timeout for transaction pool waits.
queryservice_test: add test for tx pool available
Merge pull request #89 from youtube/suguwork

tabletserver: add support for tx pool timeout
Changed the test to do an explicit rollback incase of an exception.
Fixed integrity_error_logging test to rollback the transaction.