Introduce git_describe_xxxx()

- [x] `git_describe_objects()`
- [x] `git_describe_objects()` tests
- [ ] `git_describe_workdir()`
- [ ] `git_describe_workdir()` tests
- [ ] API documentation
- [ ] Either remove `abbreviated_size` from `git_describe_opts` or implement it