* add tests
* fix: include root node when store is marked dirty
* fix tracking deep subscriptions. We need to walk all parents for deep subscriptions instead of relying on tracking all children recursively during the initial read since some children may not exist yet
* avoid double notifying parents when children re-visit parents in deep mark dirty
---------
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>