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.
Sorry, what I meant is that I don't think a common types package buys us anything :) if we want to split internal and external API then having types doesn't help (since it isn't a split). The only thing in this PR that we are splitting is Mount, and I don't think it will change enough to merit the split WDYT?