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 sympathise with your preference for something with which people are familiar. However, I think the users of the libcontainer API are going to be a fairly select group and could cope with the tiny bit of extra abstraction of a properly abstract container name type. Such a type would avoid certain inefficiencies in parsing and copying strings. It would also avoid having to normalise or canonicalise relative paths such as "../../a/b/../c/d/..", deal with error cases such as "/.." and ".../a", and decide how to interpret "//".

(If you are still keen to use path string syntax, it may be worth defining container name as a string type for type safety on the interface.)