Refactor xd.tool.shell chdir/pushd/popd into xd.tool.os.pushd

Refactor the chdir, pushd, and popd functions into a new pushd context
manager, reducing code size of both implementation and use, while making
the resultant code more foolproof.

Signed-off-by: Esben Haabendal <esben@haabendal.dk>
Allow manifest commands to provide subparser help text

Signed-off-by: Esben Haabendal <esben@haabendal.dk>
Simplify xd.tool.shell.call and use external sh module

Remove the path and quiet arguments to call().  Instead of specifying
path, callers should use pushd contextmanager.  Callers that need quiet
mode should use sh module instead.

The success_returncode argument is renamed to ok_code, to resemble sh
module.

Signed-off-by: Esben Haabendal <esben@haabendal.dk>
Cleanup stdout/stderr redirect in unittests

Signed-off-by: Esben Haabendal <esben@haabendal.dk>
Add logging prefix to all lines of multi-line log records

Signed-off-by: Esben Haabendal <esben@haabendal.dk>
Add layer command

Rename the "manifest" command to "layer status" command, and add
"layer add" and "layer list".

The idea is to add a simple way to add known layers to manifest, without
having to type in url's.  Later on, layer dependency handling might also
be considered.

Signed-off-by: Esben Haabendal <esben@haabendal.dk>