job: make TargetState field a value, not ptr
etcd: GET with consistent=true

Partially fix #582
fixes: assorted issues spotted by go vet
Merge pull request #610 from jonboulle/vet

fixes: assorted issues spotted by go vet
Merge pull request #606 from bcwaldon/582

etcd: GET with consistent=true
Merge pull request #602 from bcwaldon/Unit-ptr

Use a value, not pointer, for Job.TargetState field
etcd/client: ensure response body is always closed

There was a race condition when cancelling a request since the actual
RoundTrip is performed in a goroutine, and the cancel is done
asynchronously. This reworks the goroutine to ensure that the Body is
closed whenever a non-nil response is retrieved from the RoundTrip. It
also introduces a transport interface to support testing of requestHTTP
and adds complete coverage of the function.
Merge pull request #620 from jonboulle/close

etcd/client: ensure response body is always closed
version: bump to v0.5.2+git
pkg: add ExpBackoff function
heart: add Heart & Monitor structs
server: use heart.Monitor to monitor etcd connectivity
API: wrap handlers with availability