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.