Tool PM-overdue surface: filter + API + dashboard helper

Tools with a pmIntervalDays cadence now surface as 'PM overdue' once the elapsed days since lastServicedAt (or createdAt if never serviced) crosses the interval. A new chip on /tools alongside All / Mine / Needs repair / Low stock; the row picks up an amber 'PM overdue' marker. GET /api/v1/tools accepts ?pmOverdue=true; composes with ?lowStock=true. pmOverdueTools(orgId, limit) dashboard helper returns the worst offenders by days-past-due. 16 new tests for isPmOverdue + pmOverdueTools + API filter; 878 total pass.