Merge pull request #193 from arthurschreiber/merge

Start adding merge functionality
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.