refactored exports, fixed tests, and added test for legacy exports to loadJSON; fixes #118 #140
fix splicing while iterating through array #118
default return null
Handle both the modern in/outports system, and the legacy exports system. Fixes #118
Bump fbp dependency
The missing metadata methods, fixes #133
in/out typo #118
Update instance description from graph
Transactions for property changes too
Journal: Allow to pass start/end revisions to toPrettyString()
Journal: Allow metadata for initial transaction on construction
Graph: Add missing transaction end to addOutPort
Graph: Emit on addGroup() and removeGroup()
Graph: Use setProperties() in loadJSON()
Graph: Also emit before state on change{Node,Edge,*Port,Properties}

This is required to have invertible operations in the graph journal.
Journal: Clone entries before storing

Avoid issues where someone holds a reference to an object
in the journal and modifies it. Would happen with metadata.
Graph: Also send port name for changeInport/Outport

Note: this is an API incompatible change, but only to unreleased API.
Needed in journal to have enough info to call set*PortMetadata() for undo/replay.
Graph: Allow to set/reset metadata entries

Needed to make metadata additions invertible.
Journal: Also follow property,metadata,port changes
Update default icon name