feat(tile-ipc): tile:extensions:* strict shims with trustedBuiltin gating (Phase 3.5c)
Add 11 tile:extensions:* IPC handlers in tile-ipc.ts mirroring the legacy
extension-* channels in ipc.ts. All handlers enforce grant.trustedBuiltin
before executing — feature tiles cannot manage other extensions through the
tile surface. Handlers added: pickFolder, validateFolder, add, remove, update,
getAll, get, windowList, listAllRegistered, windowDevtools, reload.
Add corresponding api.extensions._strict wrapper methods in tile-preload.cts
that invoke the new tile:extensions:* channels with the tile token. The
existing api.extensions.* methods continue to call legacy extension-* channels
unchanged — Wave 3.6c will flip those to the strict paths and remove the
legacy invocations.
Imports getRunningExtensions, getAllRegisteredExtensions, reloadExtension from
main.js for use by the windowList, listAllRegistered, and reload handlers.