Warranty-expiring filter: GET /tools?warrantyExpiringDays=N

Tool.warrantyEndDate has been part of the schema since v1 but nothing surfaced it. GET /api/v1/tools now accepts ?warrantyExpiringDays=N (1-365) to surface tools whose warranty expires within the next N days — excludes already-expired warranties and tools without a date so the result is actionable. Composes with the existing CSV export (?warrantyExpiringDays=60&format=csv) for renewal-planning spreadsheets. Same filter on the in-app /api/tools route. New isWarrantyExpiring() predicate + warrantyExpiringTools() org-wide rollup helper (ordered by warrantyEndDate ASC so soonest-to-expire surfaces first) for any dashboard widget. 9 new tests cover the predicate boundaries, the rollup DB call shape, and the out-of-range no-op.