This patch drops the use of separate namespaces for different concerns,
such as networking, users and filesystem, instead, it proposes using
modules in a distro, as in `distro_name.network`, `distro_name.filesystem` etc.
which is better when trying to add new additional distros.
Also, it drops the concept of containers-as-creators, instead the objects
returned by methods as `routes` or `users` could be implemented
in the term of a sequence (for instance a namedtuple). The creation
of an object is moved in an object class itself, e.g. Route.create,
instead of RouteContainer.create.