Add Git deployer.

I don't with the `--allow-empty`option. The idea of that option to create commits with no changes at all. But doesn't makes sense because if there's nothing new (use case, you made changes on your files, but forgot to run `nanoc compile` first) it will run without errors, it will create an empty/useless commit, it will be pushed, but oh surprise, your remote page won't change at all. Removing that option, returns `nothing to commit, working directory clean` and then,  `Everything up to date` from the `git push`. This reflects the real state of your deployment way better than having ghost commits, that won't serve any purpose other than polluting the history.

The man page, also discourage it uses:

```
       --allow-empty
           Usually recording a commit that has the exact same tree as its sole
           parent commit is a mistake, and the command prevents you from
           making such a commit. This option bypasses the safety, and is
           primarily for use by foreign SCM interface scripts.
```