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.
Why not use mounts's Mount here? Since it is a subpackage it should be safe no? It'd save us from defining it twice :)