PIPE-3163: Refactor `select_tsys_fields` to return single best-matching field
- Rename `select_tsys_fields` back to `select_tsys_field`; return Field | None
instead of list[Field] / raising LookupError
- Implement nearest-field fallback (angular separation) replacing the
previous "return all fields" approach
- Update `plot_tsys_scans` to handle `None` return gracefully
- Fix tests: add per-case gainfield mock, add nearest-fallback test case