fix(tile-preload): add getBounds / getDisplayInfo / setBounds + unwrap getWindowId result
Three more tile-v2-migration gaps in the api.window surface, same
class of bug as the earlier getWindowId / api.ipc fixes:
1. api.window.getBounds() was called by page.js for maximize pre-save
but never added to tile-preload.cts. Wrapped the existing legacy
window-get-bounds IPC under a new tile:window:get-bounds channel
that is token-gated (no cap — a tile always knows its own bounds).
2. api.window.getDisplayInfo() and api.window.setBounds() similarly
missing. Added both following the same pattern.
3. api.window.getWindowId returns { success, id } but page.js was
storing the whole result object into myWindowId and comparing it
against a plain number in pubsub handlers (msg.windowId !== myWindowId).
The object-vs-number compare is always true, so every page:*
event with a windowId filter was being silently skipped. Unwrapped
the id at assignment time.
Fixes all 14 page-layout tests + all 4 page-navbar tests (the
latter were failing because getWindowId comparison blocked
page:show-navbar handlers from reaching show()).