tags: simplify interface

Rather than throwing an exception when we encounter an invalid tag,
we simply treat the unrecognised characters as if they were '_'.

Rename Tag.string_of -> Tag.to_string, to make this more like the
stdlib (Int64 etc)

Remove all unnecessary functions from the Tag interface.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>