Try to use xz for snapshots send to remote hosts

If available at both ends, use xz to compress snapshots when sent over
ssh. This can produce significant bandwidth savings. It really ought to
be made optional at some point though.
Sort listed snapshots numerically, not lexically

Commit ac6e130b2b7f2987910775e13ab09a81267eeb1b introduced an
optimisation to speed up snapshot listing by requestion only the
snapshot name, sorted by name. This is faster than the default list
of ordering by date (significantly so when there is a high number of
snapshots), but produces incorrect ordering when snapshot names have
different numbers of digits - eg. @abc_2 sorts after @abc_10.

Fix this by numerically sorting the snapshots after listing them.
Don't force zfs receive

Destination datasets should be set to read-only, so there should be no
need to use the -F flag to zfs receive.

Older versions of zfsonlinux (prior to 0.6.3?) used not to rollback
existing snapshots when receiving incremental streams, if they were
identical to the source snapshot. Now, -F causes *all* more recent
snapshots to be rolled back, thus wiping out auto snapshots.
Fix colour option

The -c flag wasn't correctly listed as an available option
Make xz compression optional

This is disabled by default, and enabled with -z
Add facility to send snapshots via a temporary file

This can help with some pipeline stalls experienced when trying to pipe
straight from 'zfs send' to 'zfs receive'.

The receiving system must have the corresponding
'__zfs_receive_tmpfile' function, as defined in 'zfs-ssh-wrapper'.

I'm also still seeing some spurious 'invalid backup stream' errors that
vanish on further attempts. This paves the way towards being able to
retry without having to retransmit the data, although simply using the
temp file seems to reduce the frequency of this problem versus piping
directly.
Add facility to report the age of the latest backups

Rather than running the backup, this will check all of the datasets
that would have been mirrored, warning if the age of the destination
snapshot exceeds some threshold.