testing infrastructure, issue #1800: Refactor docker testing using Docker in Docker
Fix build on darwin
Minimal, unintrusive implementation of a cleaner Job API.

* Implement a new package: engine. It exposes a useful but minimalist job API.
* Refactor main() to instanciate an Engine instead of a Server directly.
* Refactor server.go to register an engine job.

This is the smallest possible refactor which can include the new Engine design
into master. More gradual refactoring will follow.
Engine: basic testing harness
Engine: centralize checks for supported architectures and kernel versions
Rename 'GraphPath' to the more logical 'Root'. This does not affect users except for a slight text change in the usage messge
Rename ConfigGetenv to ConfigFromJob
Setup daemon pidfile/cleanup in Server.Daemon() instead of main()
Close sqlite persistent connection on SIGINT, SITERM or SIGKILL
Engine: cleanly log the start and end of each engine job
Engine: Engine.Job() never fails, to mimic the os/exec API (and make usage less verbose)
Fix formatted on build
Fixes the password value in the redis/links example
Fixes typo in the CLI documentation
Fix typo
correct assignment of $PORT from docker port output

in the example, PORT is assigned to "0.0.0.0:<port>" vs "<port>" as in previous versions of docker (I encountered this documentation discrepancy tonight after installing docker v0.6.5)
Merge pull request #2481 from tmc/patch-1

Fix typo in redis doc
Fixed the quoted text
Fixes another instant of the password
Merge pull request #2305 from mzdaniel/1800-testing-dind

Testing infrastructure, issue #1800: Refactor docker testing using Docker in Docker