restore: TASK_HELPERs live until RESTORE stage

In order to use TASK_HELPERS to open files from dead processes, they should
persist until the end of the restore stage, so that the /proc files exist when
setting up the fds.

This commit also adds a new stage CR_STATE_RESTORE_SHARED. Since new
TASK_HELPERS are added when loading the shared resource images, we need to wait
to start forking tasks until after these resources are loaded.

v2: fix a mutex bug, wait() on helpers after restore stage is over

Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>
remap: add remap_type field and use it

Maintain backwards compatibility for old images, but don't set the REMAP_GHOST
bit going forward, only use the remap_type field.

Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>
remap: add a dead pid /proc remap

If a file like /proc/20/mountinfo is open, but 20 is a zombie (or doesn't exist
any more), we can't read this file at all, so a link remap won't work. Instead,
we add a new remap, called the dead process remap, which forks a TASK_HELPER as
that dead pid so that the restore task can open the new /proc/20/mountinfo
instead.

Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>
test: add a test for remap_dead_pid

Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>