fix: spreadnob M4L→UI bridge — use direct function calls + fix bios send
- M4L patcher: switch to `script window.acSnNote&&window.acSnNote($1)`
(direct function calls, same pattern as acDawTempo)
- index.mjs: define window.acSn* bridge functions in inline script
(replaces broken bindInlet and postMessage approaches)
- bios.mjs: fix _dawConnectSend to use window.acSEND (live reference)
instead of captured stub — fixes DAW bridge for ALL M4L devices
- disk.mjs: store spreadnob state on persistentDawState (sn* keys)
- spreadnob.mjs: read from sound.daw.snNote/snTarget etc. + debug display
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>