TagCollection#delete should only take one argument.

And it shouldn't care whether it's passed a Rugged::TagReference, a
short name or a canonical name.
TagCollection#each takes an optional pattern now.
TagCollection#each should return an enumerator when no block was given.
Change Rugged::Repository#each to return a Rugged::TagCollection.