slab/menuband: compile WaveformShaders.metal at runtime
SwiftPM's executableTarget doesn't auto-compile bundled .metal files
into a default.metallib (auto-compile is an Xcode build-phase rule, not
SwiftPM). With the .metal file declared as a `.process()` resource
SwiftPM only copies the SOURCE into the module bundle, so
`makeDefaultLibrary(bundle: .module)` throws "no default library was
found" and the visualizer ships solid black.
Fix: load the .metal source from the module bundle and compile via
`device.makeLibrary(source:)` at first-pipeline-build. ~10ms once on
launch. Falls back to makeDefaultLibrary if SwiftPM ever starts
emitting a metallib.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>