Added failing test for BoxUI nodule positioning.

We want the positioning to be based on the tangents of the internal connections.
Squash me.
Moved Metadata class from GafferUI to Gaffer.

It doesn't have any dependencies on code in GafferUI and it is useful outside of UI contexts - for instance in the documentation generation code.