♻️ rewrite focus as synchronous; remove old async API (FreedomApi/useTree/append/eval)
- focus.ts: sync functions taking a node; useFocus installs a remove-interceptor
via node.scope.around(NodeApi)
- NodeApi gains sync remove; Node.remove() returns the teardown Promise
- delete freedom.ts (FreedomApi/append/operations) and tree.ts (useTree)
- drop Component/Tree/Node.eval from types; mod.ts exports the new surface
- focus.test.ts rewritten imperatively (synchronous)