Reference node

This adds a new Reference node type, which is capable of referencing in external scripts to allow collaborative workflows, asset management, and the breaking of large scripts into smaller reusable chunks. User workflow is as follows :

- Create a bunch of nodes to be referenced
- Put them in a Box, and promote any plugs to be accessible on the reference
- Use the "Export for referencing..." tool item on the Box node ui
- Use the Utility/Reference menu item to create a reference node and load the reference
- Reexport an updated file from the box at any time, and use the reload and file browser buttons on the Reference to update it

Also added File/Export Selection and File/Import menu items, as it was a useful way of testing intermediate functionality needed by the referencing code.