Generalize layers as merge nodes to enable adjustment layers (#1712)
* WIP, backward traversal issues
* Fix some tool issues
* Remove debugging
* Change some indices
* WIP: new artboard node
* WIP: add artboard node
* WIP: Artboard node and create_artboard
* WIP: Artboard node implementation complete
* WIP: Artboards input for output node
* Complete Artboard node
* Generalize LayerNodeIdentifier, monitor_nodes support for Artboard node, adjust ResizeArtboard/ClearArtboards, move alias validation to Rust
* Fix misaligned artboard click targets
* Generalize/clarify create_layer and insert_between
* non-negative dimensions for resize_artboard
* Show artboards in layer panel
* Generalize create_layer for layer output node
* Generalize delete_layer/delete_artboard to NodeGraphMessage::DeleteNodes. Fixed upstream flow Iter
* remove old primary_input function
* Vertical node visuals, remove is_layer function, rename Layer node to Merge node, toggle display as layer
exposed_value_count type fix
Vertical node visuals, remove is_layer function, rename Layer node to Merge node, toggle display as layer
* Fix demo artwork
* Layer display context menu
* Automatically select artboard, fix warnings
* Improvements to context menu and layer invariant enforcement
* Remove display_as_layer and update load_structure
* Improve load_structure to show more layers, improve FlowIter, improve layer naming, layer rearrangement validation.
* Clean up demo artwork using generalized layers
* Improve design of Layers panel and graph nodes
* MoveSelectedLayersTo rewrite to support generalized layer nodes
* Include artboards in deepest_common_ancestor, fix resize_artboard/delete_artboard, sync artboard tool to layer panel
* MoveSelectedLayersTo adjustments
* Sync non layer node visibility with metadata
* Include non layer nodes when moving/creating layer
* Fix group layers and get_post_node_with_index
* Include non layer nodes in UngroupSelectedLayers
* GroupSelected for all selected nodes, UnGroupSelected position adjustments
* Add grouping for layers in different folders
* Fix hidden layers
* Prevent node from connecting to itself, fix undo automatic node insertion,
* Fix undo CreateEmptyFolder, fix grouping nested layer nodes
* Formatting
* Remove test and check if node is layer from network
* Fix undo group layers
* Check off roadmap
* MoveUpstreamSiblingsToChild adjustments
* Replace tabs with spaces, remove mut from argument
* Final code review pass
---------
Co-authored-by: 0hypercube <0hypercube@gmail.com>
Co-authored-by: Keavon Chambers <keavon@keavon.com>