core: Use posix_fallocate() when writing objects

This helps ensure the filesystem allocates space efficiently.
libotutil: Fix two bugs in usage of posix_fallocate()

* It's invalid to call it with a size of 0, so don't do that.

* posix_* apparently don't set errno.  So capture the return value and
  use that.
show: Fix segfault if we can't find an object

We need to use the original rev here.
core: Add _STRING variants of GVariant object formats

For the static deltas work, we're going to embed a commit in the delta
superblock, so we need a format string without the G_VARIANT_TYPE().
otutil: Correctly add ref to bytes when creating GVariant

This one went undiscovered for a while because it turned out we
weren't using it...
libostree: Add _finish() API to async progress

Since OstreeAsyncProgress queues to the mainloop, we might "lose" the
last message.  Give callers a way to force a flush.
deltas: Link to liblzma, add internal API to use it

For future static deltas work, we'll be linking to liblzma.  Since
it's fairly widespread, let's just make it a hard dependency.
pull: Stay in mainloop if we're synchronously fetching URI

The static deltas work will be doing some synchronous fetching even
after refs are downloaded.
pull: Correctly handle error state when fetching optional data

For the static deltas work, we're using the already-extant internal
API to perform a HTTP fetch for optional data - static deltas are
optional.

Except that we didn't correctly unset the error if we were doing an
optional fetch and the data wasn't found.
pull: Add tls-client-cert-{path,key}

These can be used to present a client certificate when making requests
to a repository.
Revert "pull: Add tls-client-cert-{path,key}"

This reverts commit 94f9ee7bcedaf29ed3d84aacaada50aac7644415.
Doesn't actually work, see
https://bugzilla.gnome.org/show_bug.cgi?id=334021
pull: Add tls-client-cert-{path,key} (if we have new enough libsoup)

This is an actually working version of client-side certificates.
Depends on:
See: https://bugzilla.gnome.org/show_bug.cgi?id=334021

We detect whether libsoup is new enough for this.

https://bugzilla.gnome.org/show_bug.cgi?id=729356
WIP: Static deltas

This is a large code drop to support static deltas.  To be rebased.
deltas: Add support for LZMA compression

I got 30% better compression than gzip for my main static delta test
case, and that will likely improve more once we do better clustering.
deltas: Make size configurable, pack metadata objects first

It looks like a major win to pack all the metadata objects into the
first delta part.
delta: Move to-commit into superblock

Also, add the from/to checksums there as well.  The idea here is that
if we want to do any kind of version comparisons, we can just get that
from the superblock directly, rather than doing another fetch for the
to-commit.
delta: Print size of fallback object

I was curious just how large they were.
core: Fix uninitialized variable
delta: Write out object length before write calls

This will allow us to stream objects to disk rather than doing write
tmpfile + open + read + write.
delta: Write content directly (and async), not via tmpfiles

This way we avoid the speed hit of writing a potentially large
tempfile, only to read it and write it again.

Here we're also doing the content writes in parallel.