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.
nit: use mount.Mounts? I'm fine either way since it is a simple one