Use namespace.Exec() and namespace.Init() to execute processes in CT

This series is the second step to support the new API. Now an init process is actually executed in a new container. This series doesn't change code about creating containers, it only reworks code according with new API.

We are not going to save backward compatibility with old API, aren't we?
We can't use fork() from go code. When we want to start a new container, we need to execute a program in a new set of namespaces. This program must execute namespace.Init() and then execute a specified program. So the answer on your question depends on who should create this program. I don't see any problem to provide this program together with libcontainer, but I'm afraid it isn't the golang way, is it? If we decide that a user should create this program, we need to provide StartInitialization() for him.