Remove the `_GET` function suffix.
Change `Rugged::Tag.create` to be a bit more friendly.

This also drops the functionality for creating a tag from a raw string.
Correctly report the class when inspecting ref subclasses.
Split Rugged::TagAnnotation off of Rugged::Tag.

Rugged::Tag is now a subclass of Rugged::Reference.

Tags can now be looked up by their name using Rugged::Tag.lookup.

Rugged::Repo#tags now returns a list of Rugged::Tag objects.
Update the docs.
Add Tag#target and Tag#annotation.
Rugged::Tag.create now returns the created tag.
Fix a test failure. Not sure why I haven't seen this before.
Fix the tag lookup logic, as seen in libgit2/libgit2sharp#498.

Also move the logic to basic C string operations.
Add a test for the tag lookup behaviour.
No magic numbers, please.
Remove superfluous whitespace.
Fix a test failure.
Update tests.
Change the code as suggested by @nvloff.
Update failing testcases to reflect the Tag -> TagAnnotation change.
Merge remote-tracking branch 'origin/tags-as-refs' into arthur/collections

Conflicts:
	ext/rugged/rugged.c
Move Rugged::Tag class methods into a TagCollection