grapdriver: more options to ensure mounts

This provides further mount flags to ensure are in place. (shared,
private, slave and the same recursive)

Signed-off-by: Vincent Batts <vbatts@redhat.com>
devicemapper: shared/slave instead of private

This is the first part of mount namespacing that would use shared/slave
rather than strictly private.

This allows for mounts to be seen like private, but umounts to propagate
back to the root mount namespace. This fixes the EBUSY ("device or
resource busy") seen occasionally when a devicemapper device is being
attempted to be deactivated.

This patch has a requirement that the base graph directory be mounted
rshared first.
```
docker_root="/var/lib/docker"
mount --bind ${docker_root} ${docker_root}
mount --make-rshared ${docker_root}
docker -d -g ${docker_root} -s devicemapper
```

Signed-off-by: Vincent Batts <vbatts@redhat.com>