Skip remote connection setup for local backups

It's an error to perform setup of a remote connection when configuring
a local backup, so let's just skip that step and prevent accidentally
running it for curious users who would choose it in the menu even though
it's already marked as done.
warn users of what went wrong in case of ssh key or remote dir creation
handle remote repository initialization in helper
Only initialize remote repository if the backup type is not local

also, instead of testing whether the remote repository is a directory,
try creating it with mkdir -p
Switch default excludes to regexp-based exclusions

The default excludes are "complex" exclusions: they don't directly point
to one and only one file or directory to exclude; so we need to use
regexp-based excludes for the default excludes.

also: removed the duplicity cache from the list. It was probably only
there because I copied the basic exclude list from another helper.
syntax error in bup helper
the exclude list won't accept being emtpy

backing up some directory without excluding anything should be perfectly
acceptable, so we need to get rid of the non-empty restriction on
exclude lists.

also, we were setting back noglob without removing it before hand. let's
fix that.
bup.helper: reorder exclude lists

since the default exclusion list is now in the exclude_rx list, it's
confusing to get the empty default exclude list. let's present the list
of exclude_rx first to show users that there are actually some default
options, and then present the other list.
bup.helper: cleanup do_dest()

this sequence of questions should be a lot more intuitive. Also by
making some questions not show up when setting up a local backup, we
avoid confusion with the useless variables.

+ there was a bug with choosing the remote destination, the wrong
variable name was used.
bup.helper won't go beyond regexp excludes

formBegin doesn't like the presence of the ' in the string so just
change the wording.

also change success message for remote repository creation to make it
less confusing. the message was too much like the one from
ssh_ensure_remote_dir.
bup on doesn't honour remote bupdir path

it's tricky, but it works: everything after the host argument gets
passed on as arguments to bup on the remote end. so by inserting a "-d
path" before the command, we're able to specify the remote bupdir
that'll be used on the remote side.
include ssh lib in main binary
bup.helper: use $BUP
bup.in: make sure the path to bup is an executable
add more details to the example file
bup.helper: add more details to the generated config files

let's be more helpful to people when they generate config files so that
they can understand what's doing what.
bup.in: don't execute anything if in test mode

backupninja -t is supposed to only test that connections work so let's
honour that option.

while we're at it, make all indentation 3-spaces-wide. as much as I hate
3-space-wide indentation, it's used by all other helpers so we should
probably match the same style as the other scripts.
get testconnect option
document top-level options in the bup example
Add some info about top-level options in the generated configs