Basic version of libcontainer API.

This version has mostly the behavior available today and the
functionality agreed upon in other PRs. Further changes will be sent as
smaller PRs for discussion.

This PR is meant to be the already agreed-upon components of the API (note that a lot of functionality is missing). The reviewing is getting harder so we'll try to get this in, and then make the smaller changes with more discussion in smaller PRs.

Docker-DCO-1.1-Signed-off-by: Victor Marmol <vmarmol@google.com> (github: vmarmol)
The uniqueness is something we will have to deal with regardless since we will be sharing machine global state (like cgroups). As you mentioned, the two options were for users to give us a unique ID, for libcontainer to create one for them. I think it is easier for the user to come up with one, they usually have some identifier they wanna use anyways. They also don't need to remember our generated ID. There is no Detect() anymore, so that part is not a concern. It is mainly how the user refers to a specific container.

We will need to cooperate between multiple instances of libcontainer in the same machine anyways since it is machine global state. There will be multiple processes running their own libcontainer to access containers (e.g.: Docker and nsinit or any tool that monitors Docker containers, like cAdvisor).