Tags as refs

I split off `Rugged::TagAnnotation` from `Rugged::Tag` and made `Rugged::Tag` inherit from `Rugged::Reference`. This allows the usage of tags for everything that expects a ref.

I changed the signature of `Rugged::Tag.create` to be a bit more friendly, added `Rugged::Tag.lookup` to allow looking up a specific tag in a repo, and added `Rugged::Tag.each_name`.