Support for git add.

This provides basic support for adding files to the index a la `git add`. It's the first part of smashwilson/merge-conflicts#12, which involves using git through this package rather than shelling out as much as possible.

Left to do:

- [x] Write more specs for the non-happy cases.
- [x] Documentation.