BREAKING CHANGE: Reactivity APIs adjustments:
- `readonly` is now non-tracking if called on plain objects.
`lock` and `unlock` have been removed. A `readonly` proxy can no
longer be directly mutated. However, it can still wrap an already
reactive object and track changes to the source reactive object.
- `isReactive` now only returns true for proxies created by `reactive`,
or a `readonly` proxy that wraps a `reactive` proxy.
- A new utility `isProxy` is introduced, which returns true for both
reactive or readonly proxies.
- `markNonReactive` has been renamed to `markRaw`.
* test: [wip] add tests for rendererChildren
* chore: use serializeInner for clearer output
* fix: should remove the text node if content is empty
* test: also test for appended content
* test: inserting & removing
* test: moving children
* refactor: use a helper function
* test: finish tests
* test: duplicate keys tests belong to keyed children block
* fix(runtime-test): fix insert when moving node in the same parent
* fix: fix failing test cases for rendererChildren
* test: handle rendererChildren edge case