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)
Let us talk through a scenario. Say someone wants to run an image that ultimately runs httpd as apache user (uid: 48). 

What would the mappings be in this case? Does it make sense to map 48 in container to 0 on the host? No, that doesn't really help and could open up security holes. Does it make sense to map it to some other UID? Maybe it does, but still not sure how that helps. If we were to keep it running as 48 outside and inside, then user namespace doesn't really add any value here.