Implement revparse support and add repository open/init functions.
Reorder declarations from important to less important.
Add partiall support for diff and index.

Also removes unused declaration and comments from
repository.d.
Various usability enhancements.

- allow GitObject conversion to specialized types (e.g. GitCommit)
- rename checkout without arguments to checkoutHead
- use SysTime when referring to time values
- add getters for all fields of GitSignature
Compile fixes for libgit2 0.19.0.
Implement support for tags and submodules.