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.
Also test type assertion, for completeness?