- Changed resizeGrip into an instance of a rect that uses a mask that is a set of diagonal stripes.
- Made delete button selections use a class now that resizeGrip is also a <use> element.
- Lots of DRYing: Added setD3SelAttrsPreservingClass and functions that use it (setSelAttrsWithDataArray, syncSelAttrsrToDataArray, syncCommonRectAttrsToDataArray) to avoid pattern in which attrs are set and then the class is reset. Still need to apply it to syncAttrsToItems.
Refactored syncAttrsToItems to use setSelAttrsWithDataArray.
Moved some functions out of board.js and into syncing_data_and_elements.js.
- Pulled initItemGroupSelection out of syncNodesToItems. Renamed syncNodesToItems to matchElementsToItems and syncAttrsToItems to updateItemGroupSelection.
- Stopped setting xlink:href and fill for delete button in updateItemGroupSelection; moved that to initItemGroupSelection.
Renamed/refactored box syncing functions into match/init/update functions.