Refactor ParseTag

Refactor ParseTag to return (Tag, error), the kind of tag is now available via the Kind() method, although a type assertion is preferred. The contents of the tag is now moved to the Id() method.
The first line of this doc string should be tidied up. Something like: ParseTag parses a tag string into a Tag instance.