Added IEditorManager.setLabel()/getLabel().
Added label()/getLabel() functions to Weave Path API.
Now using getLabel() in ExternalTool.
Clean up error messages for invalid edges; correct deselect behavior when clicking on the background.
Moved label()/getLabel() to WeavePathData.js
code cleanup
code cleanup
code cleanup

Change-Id: I34405e68a746c7193ba079c8d7c37b067953f0c7
Merge branch 'master' of https://github.com/IVPR/Weave into WeaveGoogleDrive
disabled pen tool menu items when right-clicking on desktop
fixed bug where XML export option would be disabled.
Added support for thumbnail and embedded files in XML session states.

Change-Id: I1d515e4660dfa77f7e416a08c40da77e4e87f612
SortedIndexColumn now sorts asynchronously.
CategoryBinningDefinition is now asynchronous.
added type restriction to WeaveProperties.externalTools
removed unnecessary code from getStyle()
LinkableVariable now saves an internal copy of the session state so it
can detect changes to dynamic objects.
Removed unnecessary naturalize() code.
Added retrieveRecords to WeavePathData for fetching data in a row-based structure.
Converted cytoscapejs tool to use retrieveRecords and reduced code size significantly.
code cleanup

Change-Id: I1509e4c356118be6857305caa302bbea848642d8