feat(generator): add shutdown lifecycle event (#97)
## Summary
- emit shutdown event when the generator loop fully exits
- have ServeLoop evict generators based on `.shutdown`
- update generator docs with shutdown lifecycle event
- expect shutdown frames in tests
## Testing
- `./scripts/check.sh`
- `cd docs && npm run build`