Refactoring libcontainer to avoid cyclic dependencies in the future.

This change will make future work inside libcontainer easier since the API is separated from the internal implementation.
libcontainer.Mount is used in docker's codebase. If we use the same struct, then we cannot safely evolve the internal implementation.