API changes & test fixes
- Removed Host, BaseNodeServer, NodeServer, NodeClient, PartOwner and node/options/*
- Added ServerNode and ClientNode which extend Part
- Create new matter.js/environment module with generic environmental services:
- MdnsService manages broadcaster & scanner
- RuntimeService manages long-lived workers (nodes & MDNS being two)
- StorageService manages storage
- VariableService manages configuration
- Node networking is moved to NetworkBehavior
- Added context-free access to (read-only) state and events via part.state.behaviorName and part.events.behaviorName
- Environment now supports simple hierarchical delegation; replaces old node serviceFor
- Move non-matter behaviors from behaviors/definitions to behaviors/system
- Modify diagnostic location management a bit to convey location along with reference
- Fix up matter.js tests
- Promise API updates
- Added CancellablePromise interface to support general cancellation of long-running workers
- Added proper catch and finally helpers for MaybePromise and AsyncConstruction
- Updates to transaction management
- Added "purpose" to action contexts to improve diagnostic messages
- Convert shared transactions from snapshot isolation to read committed as it's more intuitive
- Reactors may now specify locks required for reaction
- Fix several bugs in state management, in particular unwrapping managed values on insert