Add API for checkpointing and restoring containers.

Two new functions, Checkpoint() and Restore(), were added to use
the criu(8) utility for checkpointing and restoring a container.
These functions have no assumptions about Docker.

Signed-off-by: Saied Kazemi <saied@google.com>
Use libcontainer's checkpoint and restore API for container C/R.

Using the newly added API in libcontainer, support for checkpointing
and restoring containers was added.

The nsinit command line usage for checkpoint and restore is consistent
with the rest of the 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.

While there are no hard-coded assumptions about Docker, the new C/R
functionality has only been tested with Docker containers.

Signed-off-by: Saied Kazemi <saied@google.com>