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'd like the semantics of subcontainers to be defined in the API. For instance:

* Are there any constraints on which namespaces apply to a child relative to the namespaces applied to a parent?
* Is it true that for each namespace of a child container, the namespace is either a child of the corresponding namespace of the parent container or equal to the corresponding namespace of the parent container?
* Are there any invariants between the file system of a child container and the file system of its parent container?
* Are there any limitations on whiteout in relation to parent and child container file systems? (I am led to believe there at least used to be some restrictions in AUFS.)
* Is it possible to delete a container that has children or is it necessary to delete the children first?
* Is it possible to create a child container and its parent(s) with a single call to Create or must a parent container have already been created before any of its immediate children can be created?
* What are the semantics of the ROOT container. For instance, what does GetContainer on the ROOT name return?
* What happens if the API is used by a process running inside a (non-ROOT) container?