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)
Update sysvinit script to fix a few inconsistencies and be more useful/correct downstream
Make /events API send headers immediately

Go's net/http API does not send headers until the first call to
ResponseWriter.Write().  Ordinarily, this is fine, because in most
cases, responses are returned immediately.  However, for the events
API, nothing is written until some event is sent, which causes
timeouts and/or hangs in some HTTP client APIs, which wait for headers
before returning from the "make request" call.
do not split last column docker top
Fix formatted on build
Fixes the password value in the redis/links example
Fixes typo in the CLI documentation
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)
Fixed the quoted text
Fixes another instant of the password