libct: build a static version of the library

It will be used for libcontainer. libcontainer is used by tools,
which are executed in a container and libct may be not installed there.

Reviewed-by: Cyrill Gorcunov <gorcunov@openvz.org>
test: compile tests with -Werror -Wall
userns: add ability to set mappings of user and group IDs
ct: add support of user namespaces
makefile: make clean should clean test/ too
libct: add libct.a in gitignore

Signed-off-by: Andrey Vagin <avagin@openvz.org>
libct: add new abstraction for processes

Signed-off-by: Andrey Vagin <avagin@openvz.org>
process: add a function to create a process descriptor

Signed-off-by: Andrey Vagin <avagin@openvz.org>
ct: all function to execute smth in CT take a process descriptor

Signed-off-by: Andrey Vagin <avagin@openvz.org>
ct: use propertios from a process descriptor

Signed-off-by: Andrey Vagin <avagin@openvz.org>
libct: remove old stuff

Signed-off-by: Andrey Vagin <avagin@openvz.org>
tests: update tests accoding with new changes of API

Signed-off-by: Andrey Vagin <avagin@openvz.org>
go: add support of process descriptors

Signed-off-by: Andrey Vagin <avagin@openvz.org>