Merge pull request #219 from tiennou/entry-with-name-fix

Complete work on #138.
add checkout function
Fix issues raised in review.
Enums aren't typed.
Fix the HEAD selection code.

This allows both checkouts of references and commits. I'm not sure about tags though…
Tests + fixes because tests failed.
Clarify the typedefs.
Typedef the blocks.
Move the parameters around + documentation.

Because it feels better to have blocks at the end.
Add a convenience wrapped if notifications are not wanted.

And use that in tests.
Typo + indentation.
Another wrapper if you really aren't interested in blocks.
Add accessor for orphaned HEAD.
Clarify documentation on `isHeadDetached`.
Use `git_repository_head` instead of going through GTReference.

This is equivalent, but has a special error code for orphaned HEADs.
Merge branch 'master' into tag-enumeration
Changes per review + merge master.
Merge branch 'master' into kill-casts

Conflicts:
	Classes/GTBranch.m
	Classes/GTCommit.m
	Classes/GTEnumerator.m
	Classes/GTRepository.h
	Classes/GTRepository.m
	Classes/GTTag.m
	ObjectiveGitTests/GTBlobTest.m
	ObjectiveGitTests/GTCommitTest.m
Merge pull request #221 from tiennou/tag-enumeration

Add a convenience method to get all tags in the repository.
Merge pull request #215 from tiennou/kill-casts

Switch the `lookup` methods to `id` to kill casts.