replace 127.0.0.1 by the assigned IP address in the container's /etc/hosts file.
change 127.0.0.1 -> 127.0.1.1 & remove ::1 -> hostname mapping
Merge remote-tracking branch 'upstream/master'

Conflicts:
	container.go
Container memory limit can be specified in kilobytes, megabytes or gigabytes

    -m 10  # 10 bytes
    -m 10b # 10 bytes
    -m 10k # 10240 bytes (10 * 1024)
    -m 10m # 10485760 bytes (10 * 1024 * 1024)
    -m 10g # 10737418240 bytes (10 * 1024 * 1024 * 1024)

Units are case-insensitive, and 'kb', 'mb' and 'gb' are equivalent to 'k', 'm' and 'g'.
Separate a) initialization of the http api and b) actually serving the api into 2 distinct jobs
Engine: 'start' starts the specified container
httpapi: don't create a pidfile if it isn't set in the configuration
Engine: fix a bug which caused handlers to be shared between multiple engine instances
Engine: don't export private testing utilities
Engine: improved logging and identification of jobs
Engine: optional environment variable 'Logging' in 'serveapi'
Hack: simplify the creation of test directories
Engine: fix a bug when encoding a job environment to json
Better error reporting in engine logs and unit tests
Fix main()
Engine: 'create' creates a container and prints its ID on stdout
Remove debug messages
Update documentation to reflect changes in Config and HostConfig
Utils: Add ShellQuoteArguments
lxc: Work around lxc-start need for private mounts

lxc-start requires / to be mounted private, otherwise the changes
it does inside the container (both mounts and unmounts) will propagate
out to the host.

We work around this by starting up lxc-start in its own namespace where
we set / to rshared.

Unfortunately go can't really execute any code between clone and exec,
so we can't do this in a nice way. Instead we have a horrible hack that
use the unshare command, the shell and the mount command...