Add checkpoint/restore functionality to nsinit and libcontainer

New code was added to nsinit and libcontainer to use the criu(8) utility
to checkpoint and restore a container.

While there are no hard-coded assumptions about Docker, the new C/R
functionality has only been tested with Docker containers.

The nsinit command line usage for checkpoint and restore is consistent
with the rest of nsinit commands.  However, for easier C/R usage, the
user can specify the container ID on the command line.  The best way
to get started is to run "nsinit checkpoint --help" and look at the
"EXAMPLE:" section.

Signed-off-by: Saied Kazemi <saied@google.com>
A slight correction to my comment above: data_path is set to the directory where container.json file is.  The pathname to this directory includes the container ID which changes from container to container.  So the preferred way of doing checkpoint and restore (least amount of typing) is to set LIBCONTAINER_DIR once and provide container ID on nsinit command line.  In this case, the user can be in any directory.