Split GTRepository API

As was hinted in #224, this moves some parts of the API away from GTRepository. It's based on #292. This only leaves repository "properties" and high-level API in `GTRepository`.

This changes the following :
- [Move](15735d3) the various `-lookup...` methods to `GTObject`, based on the called class.
- Move the [branch](14d6a5a) and [tag](cc40bbb) creation methods to `GTBranch` and `GTTag`.
- Polish [GTBranch](branch-cleanup...tests-to-specs), [GTTag](gttag-cleanup...tests-to-specs), [GTReference](gtref-cleanup...tests-to-specs).

I'm not sure if the others are worthy of separate PRs or not...