Add changes to support IPv6 & MAC parsing.

Also add changes to the node header so that it uses less space. This
primarily involves reducing the generic flags field to 16 bits and the
type field to 8 bits, leaving 8 bits for node specific flags. This saves
32 bits, at the expense of limiting ourselves to a maximum of 255 node
types (max has to be <= 255).
Add API to access node-type functions

Once a node type has been registered, it's straightforward enough for
the parser core to access the necessary functions through this API.