Add as_tag_from_string_full()
Add as_node_get_tag() and only store the name when the tag is unknown

This has a drawback that we have to convert from string->enum quite a lot, but
it turns out that the enum direct integer compare (compared to a strcmp) more
than makes up for this. It also reduces the amount of small malloc()s when
parsing metadata

This speeds up parsing by ~7% and reduces the amount of memory required by ~5%.

NOTE: the AsNodeData struct was re-ordered so it packs again into 32 bytes.