Add User Namespace support to libcontainer.

I have split the libcontainer changes from this PR https://github.com/dotcloud/docker/pull/6111 into this PR.
This PR depends upon this change -- https://github.com/dotcloud/docker/pull/6417

I want to get feedback on the implementation and the UI. For using this see https://github.com/dotcloud/docker/pull/6111 changes to the docker side. 

The changes allow one to specify UID/GID Mappings and also the user on host that will be mapped to root within the container. The UI can be tweaked on feedback.

 Docker-DCO-1.1-Signed-off-by: Mrunal Patel <mrunalp@gmail.com> (github: mrunalp)
The issue I am trying to bring up is this field is redundant with container.User.  If container.User is specified as a numeric UID rather than the user name, we can just `setuid` to it after `clone` is done in the child context.  If its unspecified, it would be virtual UID 0 by default.  In either case, there is no need for an additional field.  Only requirement is container.User cannot be a user name because the name to ID mapping within the container is not visible on the host.