deploy: Also honor multiply-specified kernel args with existing config

If we deployed a new tree inside an existing OS, inheriting kernel
args, we need to use append() instead of replace() to avoid collapsing
multiply specified kernel arguments like console=/dev/foo
console=/dev/bar.

Reported-by: Dusty Mabe <dusty@dustymabe.com>
sysroot: Add precondition that load() has been called for some API calls

We require the caller to invoke load() at the moment to do most
things.
repo-pull: Allow pulling only one directory

Changes the pull API to allow pulling only a single directory instead
of the whole deployment.  This option is utilized by the check-diff
option in rpm-ostree.

Add a new state directory to hold <checksum>.commitpartial files, so
we know that we've only downloaded partial state.
pull: Add --old argument, as a simpler way to get older commits

This allows clients to easily get older commits, to deploy an older
known good commit after it isn't the latest or to get older commits for
bisecting problems once found.
cherry-pick: Add cherry-pick command, as a simpler commit --tree=ref=...

Add a cherry-pick command, as git does. This mostly works the same way
as --tree=ref= to commit, but if you don't override the subject and
message it'll reuse the values from the original commit.
cherry-pick: Add documentation for cherry-pick command