job: builder: return immutable maps

The builder mutates the underlying maps. This
would cause the unmodifiable maps returned by
get{Env,Ports,Registration} to change as well.
remove dead code
syslog redirect decorator: do not clobber binds
add volume support

Add support for both data volumes and volume
mounts.

* Add volumes field to Job
* Make agent instruct docker appropriately
* Test both data and mount volumes
* Validate volumes
make system tests respect DOCKER_PORT_RANGE
make VolumeTest tolerate uml slirp accept/close

The uml kernel slirp driver will accept and close
even if there's no nothing bound in uml userland.
cli: create --volume flag

* Add --volume flag to JobCreateCommand
* Add volume capability to SystemTestBase.createJob
* Add cli testing to VolumeTest
verify that volume paths are absolute
cli: create --volume help
Merge pull request #9 from spotify/dano/volumes

volume support
use docker-client 2.3.0
explicit PersistentAtomicReference interrupts

Interrupting a thread blocking on PersistentAtomicReference i/o will now
cause PersistentAtomicReference to throw an InterruptedException instead
of a RuntimeException. This enable the agent to better deal with
interruptions.
interruptible PersistentAtomicReference ctor
comment
agent: refactor task monitoring