Allow IPC namespace to be shared between containers or with the host

Replaces #8211

Some workloads rely on IPC for communications with other processes.  We
would like to split workloads between two container but still allow them
to communicate though shared IPC.

This patch mimics the --net code to allow --ipc=host to not split off
the IPC Namespace.  ipc=container:CONTAINERID to share ipc between containers

If you share IPC between containers, then you need to make sure SELinux labels
match.

Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
In general, the `container:<id>` syntax feels strange when you have more than one container joining a namespace. A use-case we have for this, is that we use IPC semaphores for accessing external resources (for control in latent conditions)—in that case, we'd share this between every container running web workers on the system. Orchestrating this sharing during deployments (and replacing containers) seems non-trivial with this model.