Generalised Metadata class.

It can now store arbitrary key/value pairs for nodes and plugs, rather than just descriptions as before.