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...
thankyou @tomdz - I forgot about URL based ADDs
Merge pull request #2691 from SvenDowideit/add-instruction-path-limitations

except URL-based ADDs
Merge pull request #2445 from alexlarsson/fix-shared-root-from-dm

Fix lxc start for shared root filesystems