save: catch and log SSH errors

Currently, if the ssh connection to the remote server fails, we get the
server errors, then an ugly traceback that ends up saying "look at the
errors above". It makes it look like the traceback is part of the errors
that we need to look at, when in reality it's just an exception that's
not handled correctly by bup-save.

Signed-off-by: Gabriel Filion <gabster@lelutin.ca>
[rlb@defaultvalue.org: adjust commit summary]
Reviewed-by: Rob Browning <rlb@defaultvalue.org>
Tested-by: Rob Browning <rlb@defaultvalue.org>
Merge branch 'master' of https://github.com/bup/bup
bup cat-file: Added --ref option to specify branch or commit hash.

This option uses git's "git rev-parse" functionality, which resolves
ref's such as branches, tags, or commit hashes. If mybranch is the
name of a branch, "bup cat-file --ref=mybranch path/to/myfile" uses
rev-parse to resolve the commit hash of the commit mybranch points to.
This also enables us to use notation like mybranch^ which refers to
the commit preceding the commit pointed to by mybranch (if mybranch
has exactly one parent). Furthermore, if the commit hash is known, it
can be given directly as --ref=myhash.
Added command "bup log"

"bup log" can be used to inspect the backup history.
It is a wrapper for "git log" and "git diff-tree" and uses them in a
way that is convenient for the bup use case. Furthermore, "bup log"
knows about name mangling and will hide the name mangling from the
user, a feature that "git log" cannot provide directly.
The man-page contains detailed information and examples.
Added command "bup pick-saves"

This low-level command generates a new branch.