fix: mount weights in cog serve like cog run does (#3044)
* fix: mount weights in cog serve like cog run does
was not mounting managed weights into the container, while
(via predict.Predictor) did. This caused models with weights
to fail during setup with errors like:
OSError: Incorrect path_or_model_id: '/src/weights/bge-m3'
The fix adds the same weight-handling pattern to cmdServe:
1. weights.CheckDrift() to validate weights.lock is in sync with cog.yaml
2. newWeightManager(src) to create a weights manager
3. wm.Prepare(ctx) to assemble hardlinks from the local store
4. Append mount specs to runOptions.Volumes as read-only binds
5. defer mounts.Release() to clean up on server exit
Integration tests:
- weights_import_serve.txtar: tests import -> serve (warm cache)
- weights_pull_serve.txtar: tests import -> pull -> serve (cold cache)
* test: propagate weight env vars to cog serve tests
* test: stop cog serve before checking weight cleanup