Critical fixes:
1. bin/tito now uses sys.exit(main()) to propagate exit codes
- Previously the exit code was discarded, causing CI to pass even on failures
2. Collection errors are now counted and displayed
- 'ERROR tests/...' lines (collection failures) are now tracked
- Summary shows 'X errors, Y failed, Z passed' for clarity
Without these fixes, CI stages could show green even when tests failed.
- Remove pip install -e . requirement from CI workflow
- Add bin/tito wrapper script that sets PYTHONPATH and cwd
- Update preflight.py to use bin/tito instead of python -m tito.main
- Fix milestone command name (singular not plural)
- Use vars.TINYTORCH_ROOT with fallback to 'tinytorch'