Bug 838925: write an optional heartbeat file for every timeout check; r=dividehex
Bug 836065: fix URL generation and log query; r=mcote
bump to 2.0.2
Bug 829128: SUT emulation for fake devices; r=mcote
Setting assignee to the wrong value
Merge branch 'master' of hg::ssh://hg.mozilla.org/build/mozpool
Bug 826065: database interface rewrite; r=mcote

This moves all of the database code into purpose-specific classes, then
combines those all in a nice facade.  The current DB object is passed
around, rather than being a global; this
 * presents minimal difficulty
 * ensures that only code that should be talking to the DB does
 * ensures that a given server instance shares exactly one instance of
   the DB interface
Bug 817762: Set SO_KEEPALIVE with PyMySQL; r=catlee
Bug 817762: update comments/readme to indicate Python-MySQL isn't problematic; a=trivial
Bug 817762: Set SO_KEEPALIVE with PyMySQL; r=catlee
bump version to 2.0.3
Merge branch '2.0.x'
Bug 848561: sort log entries (and devices) properly; r=jhopkins
Bug 844363: better tests for mozpool; r=mcote

Because 80% test coverage is good enough for anyone.
Bug 846542: store current and next image separately in the devices table; r=mcote
Bug 846543: Generalize async operations, use that in the BMM API; r=mcote

This also adds support for asynchronous HTTP requests, and uses those
from the request machine.
Bug 826746: notify mozpool when lifeguard is done with an operation; r=mcote

This notifies when entering the 'ready' or 'failed_*' states.

Mozpool also tries another device when it gets a failed-bad-device
result from lifeguard (bug 819085)
Bug 837241: prefer SUT over ping when it's available; r=mcote
Bug 834568: self-test on failure, related changes; r=mcote

In addition to self-testing on failure, this does a bunch of little things:
 * eliminate the free state
 * show requests in the lifeguard UI (with API change)
 * makes failed-request states expirable
 * eliminates the now-unnecessary 'closing' request state
 * power-cycles during the sut_verifying process, per dividehex's suggestion