Remove #canonical_name from Rugged::Branch.

It was just calling `super`, so we can alos just leave that away.
Extend docs a bit.
Switch from `int` to `git_branch_t`.
Merge pull request #256 from arthurschreiber/cleanup-canonical_name

Cleanup #canonical_name
bump libgit2 to 6890e0
signature: use default, use current time

Makes passing signatures optional, if no signature is specified the one
from the configuration is used. If a signature is passed without
timestamp, the current time is used.
repo: add .default_signature
Merge pull request #257 from nvloff/default_signature

signature: use default, use current time
bump libgit2 to a07db1
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.