sync: allow pushing to non-origin remote

The following config demonstrates how this works.

By default, my_proj is synced to a git server.  If you instead want to
make a backup to a local HDD, define a -backup project spec, and set
direction = push
branches = ...

[remote:server]
root = git@my.server
scm_bare = true

[remote:hdd]
root = /mnt/my_hdd
scm_bare = true

[project:my_proj]
type = git
local_path = git/my_proj
default_remote = server
remote_path = some_folder/my_proj
auto = true

[project:my_proj-backup]
type = git
local_path = git/my_proj
default_remote = hdd
remote_path = git/my_proj
direction = push
branches = master:master
auto = false