compose: Add support for "default_target"

Currently the systemd RPM ships with default.target ->
graphical.target, which is either itself changed by Anaconda (via
parsing /etc/sysconfig/desktop, which...anyways let's stop here).

Or anaconda might set it directly to multi-user.target.

For rpm-ostree, we perform some minimal level of "preconfiguration"
per tree, so they are directly usable without an intervening
installer.

As an example for fedora-atomic/base/core, we just want
multi-user.target.  Thus, this patch provides the treefile author a
declarative mechanism to set it.
status: New builtin for system administrators to see deployments

This allows administrators to configure between deployments and easily see which deployment
they are booted into as well as indicating which is chronologically most recent.  This makes
the process more user-friendly, rather than requiring the user to remember which deployment
checksum corresponds to the most recent upgrade.
status: Rework code organization and readability

This includes several changes to format the code to follow GNU Coding Standards as per
the restof rpm-ostree.  This includes fixing indentations, adding spaces between
identifers and parentheses, replacing "goto print" with an else structure, and
reformatting print statements into complete sentences for internationalization.
status: Rework format into columns

After a discussion on what the status command should offer a
sysadmin, we decided to try a column output format similar to that
of systemctl or docker images.  This will print the timestamp,
a truncated checksum, the osname, and the refspec of each
deployment.  It also includes a --pretty option to print
the information formatted in rows with the full checksum and a
title to specify the default and the rollback target.
man: Update leading para to note "atomic" name and client/server split
man: A bit more fleshed out explanation of semantics, link to docker(1)
design/package-layering: New file

I keep explaining the vision verbally, let's write it down.
compose: Tell yum not to cache packages locally

They get deleted anyways since we blow away the tmpdir, but we expect
people to be using a local HTTP proxy.  We stopped trying to cache
packages internally as that caused conflicts with the yum lock with
concurrently executing composes.
README.md: Note that we work on the client as well
packaging: Enable hawkey and usrbinatomic by default

This will break on F20 but if that starts being a problem we can work
around it with an automatic version check or so.
Release 2014.103
compose: Add --workdir-tmpfs

This ~halves the write traffic to my SSD when doing local composes.
My laptop has 12GiB of RAM, plenty for this.
compose tree: Read in security.capability xattrs

Per http://fedoraproject.org/wiki/Features/RemoveSETUID
many programs (famously /usr/bin/ping) switched to using
"file capabilities" instead of setuid.

rpm-ostree had code to specially handle SELinux labels, but was
discarding other xattrs.  Let's just whitelist reading in
security.capability.

Closes #14
compose: Set SHADOW_USE_USRLIB

See https://bugzilla.redhat.com/show_bug.cgi?id=1098304
 Add "rpm" command, for doing rpm/yum queries on commits.

 It currently has the following sub-commands:

diff COMMIT COMMIT
 for rpmtree diff.
list [prefix...] COMMIT...
 for "yum list" like command.
version COMMIT...
 for "yum version" like command.

...bunch of FIXME's, UI output isn't great, needs docs.
 We also don't use the same code as the treediff on upgrade atm.