ikiwiki hosting internals/ todo/ git remotes configurator

A web interface for git remotes configuration would be very handy.

- Should make it really easy to set up pushing to github.
- Should be possible to push a site to any other git repo too.
- A special case is pushing changes to a site over to a branch of that site.

## design

`ikisite` already handles backup/restore of `.ssh/id_*`, so ssh-keygen can be used a generate a passwordless ssh key for a site when remotes are first set up. Provide a way to download the ssh public key, to provide to github, etc.

For each remote, the user only needs to configure:

- The git URI, in any of the forms git recognises, except file:/// and a bare path to a local repo.
- Whether to make the remote a mirror. (`git push --mirror`; force-update the remote refs) Or find a sane default.
- Possibly, the remote branch to push origin/master to. (Or a prefix, so it pushes to foo/master, foo/setup, etc.) Being able to push origin/master to github/branchable might be nice, but this feature could be omitted for simplicity initially.

The pushing should be run by a post-update hook. Currently, the post-update hook is the ikiwiki wrapper. So, the pushing could be implemented by an ikiwiki plugin. It could use the `refresh` hook, which will always be called when a change is made or received.

The plugin should daemonize, drop locks, wait a short while to avoid contending with the main site build, and then push to configured remotes.

## gotchas

ssh host key checking needs to be dealt with somehow. By disabling StrictHostKeyChecking in `~/.ssh/config`? Should be ok for public/branchable repositories. The risk is that for a non-public repository, an unsafe push could be done, exposing its contents.

ssh (or http) could stall asking for a password. The daemonization should avoid this by ensuring that any controlling terminal is detached from.

May need to force push if pushing to an empty remote. (--mirror avoids that problem)

> basic gitpush plugin now done --Joey