- re-exporting only `shape::*` is kinda pointless, since it does not have any actual shapes defined
- re-exporting the whole `geometry` module is much better, because it solves the issue above
- `SceneGraphNode` was implemented for types `struct Wrapper(Box<dyn NodeTrait>)`
- calling such types node itself is wrong, because the actual node is stored inside the box
* refactored `Reflect` trait to remove unnecessary proxying
- proxying to the inner value overly complicates the implementation and adds a lot overhead
- this is quite dangerous change since it may have subtle side effects, needs to be thoroughly tested
* ability to specify custom clone function for reflect trait
* use derived impls of Reflect for Script + Node
* use Reflect auto impl for trait object wrappers
* refactored `Reflect::as_xxx` methods to return value itself
- there's no reason anymore to use closures there because proxy structures now supports reflection in normal way
* doc improvements + corrections
* register scene nodes in inspector
* register ui widgets in inspector
* fixed `is_out_of_sync` to recursively check for out of sync
* fixed downcasting for widgets and scene nodes
- removed a bunch of unnecessary casts to &dyn Reflect
* use inner value of node/widget wrapper in the inspector
* fixed editing of inheritable vars
* fixed name column hiding in inspector
- setting name column width is not the correct way, because this property is recursively supplied to the inner inspectors and hides what shouldn't be hidden
* fixed editing of `RefCell<T>`
* fixed tests + docs comment
- setting name column width is not the correct way, because this property is recursively supplied to the inner inspectors and hides what shouldn't be hidden
- proxying to the inner value overly complicates the implementation and adds a lot overhead
- this is quite dangerous change since it may have subtle side effects, needs to be thoroughly tested