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.
The Create() routine here is different than what lmctfy and libct implemented.

With systemd, we cannot create cgroups and not have a process in it. Create() to just reserve resources or launch multiple tasks is tricky.

The usecases we have so far:
1. Create a new container and run a given binary in it.
2. Create a new container use Run() to launch tasks into it. This can be used for more efficient restarts and to make use of cached memory.

2. can only be approximated by adding a dummy process. I don't think we want to go there.

What we want is:
- an interface that creates a container and launches a process in it.
- an interface that runs a new process in an existing container (which already has a running process).

To make it clear what these interfaces do, I propose we rename Create() to Start() and Run() to RunIn().