Initial version of libcontainer API.

Docker-DCO-1.1-Signed-off-by: Victor Marmol <vmarmol@google.com> (github: vmarmol)

This is an initial proposal of what a libcontainer API would look like. You can see it is in no way implemented :) This is primarily for discussion on the API, we can merge this and start working on the individual pieces one at a time.

The proposed API borrows heavily from lmctfy and libct with some changes to improve on those. Key aspects are:
- Container names as hierarchical path
- Separating Creating a container from Getting a container (the latter gets a reference to a running container)
- Containers as objects we can perform action on.

Any and all comments are welcomed :) I think the documentation on these may be a little lighter than I'd like. I can add more as it is requested.
I think there is a lot of scope for complexity here, especially in relation to the behaviour with distinct sets of namespaces in parent and child containers. Would you consider omitting subcontainers from the API for now (but making sure they are not ruled out)? Are subcontainers even supported at the moment? Cloud Foundry's warden component found the limitations in AUFS too restrictive and had to concoct a file system with read-write portions mounted over a read-only base just so it could support nesting (in a very restrictive manner, let's be clear).

I'm also confused about the meaning of the ROOT container. Does it represent the host OS or is it some kind of proper container?

Finally, I'm not sure that this conversation is going to persist given that the diffs have gone stale. Would it be better to capture this conversation in an issue ("define subcontainer semantics") or elsewhere?