Add --disable-compose-tooling build option

Some downstreams want the ability to separate the compose tooling from
the client, for e.g. support reasons.

This approach supports generating a tarball without the source for the
compose command, and requires specifying a config option to disable
it.
patches: Obsolete

We now have a different fix, see commit
827e711eb74135f075f02f5c44685e4e35c1a8b1
treepkgdiff: Don't require a booted deployment

For the test suite, we're doing an upgrade offline of another OS root.
What we should maybe do is print the package diff from the merge
deployment, if not the booted one.

However, I think this is OK for now.
Import some basic testing infrastructure from OSTree

This is using the
https://wiki.gnome.org/Initiatives/GnomeGoals/InstalledTests model.

In order to run the tests, you will need to:
./configure --enable-installed-tests

Then:
gnome-desktop-testing-runner -p 0 rpm-ostree/
compose: Serialize treefile early

This way we don't emit a critical if we exit due to having already
cached content.
tests: Add a rebase test

This crashes for me sometimes, so let's add a test.
https://github.com/projectatomic/rpm-ostree/issues/30
packaging/make-git-snapshot.sh: Add missing file
rebase: Make use of new upgrader API to ignore unconfigured state

"atomic rebase" is mostly a copy of "ostree admin switch", so let's
also pick up the changes in ostree admin switch for the new
unconfigured state flag.

This allows a user to "atomic rebase" on an unconfigured system.

Related: #31
packaging: Add symlink for atomic
Release 2014.107
status: Consistently use malloc'd() memory for status

This crashed when "atomic status" on an origin that didn't have a
refspec, which happened via my new atomic-pkglayer demo script.
docs: Fix a typo
compose: Fix setting of default.target

This would probably be best if we invoked systemctl in the compose
tooling, but at the moment we don't have any execution of target code
on the host.  It's fine to assume that it's in /usr/lib.

We can revisit this if we start doing chrooted/containerized
execution.
rebase: Fix status line ending

This was fixed in ostree commit 4d04b148d8b6abad6b6ebc2685e67fc9421b308f
where this code was adapted from.
compose: Support 'boot_location' to facilitate GRUB2

Having content in /boot in OSTree was always ugly, because we ended up
mounting over it in the deployment location at boot.

This was even worse in the anaconda rpmostreepayload code, because of
the juggling of the mount point that needed to take place.

Trying to add a GRUB2 backend to OSTree is what finally forced this
change.  Now, we put kernels (in the tree) by default in *both* /boot
and /usr/lib/ostree-boot.

OSTree itself knows to look in both locations.  Anaconda is going to
just hard require trees with the new location though.
rpm: Check out rpmdb in user mode

We may be running as non-root against a root-owned repository; in that
case, there's no need to try to copy the SELinux context or chown()
the files.
rebase: Cleanup dead variables and origin references
treecompose: Add --add-metadata-string argument for versioning

This will be used by rpm-ostree-toolbox to inject version numbers for
the trees.
Release 2014.108
upgrade: Honor pull flags

A user noticed --allow-downgrade wasn't actually working.