## Why

Confirmed by reading `LunchMenuController::index()` and the `LunchItem`/`LunchBookingMenu` models: there is no way today to ask "which not-yet-closed menus contain this item?" - `LunchBookingMenu::items()` (the menu → item side) exists, but there is no inverse `LunchItem::menus()` relation, and the admin menu list has no `item_id` filter. When an admin edits a lunch item's price, the FE has no data to warn them that people ordering from a currently open menu will see/pay a different price than people who already ordered before the edit.

## What Changes

- Add a lightweight, read-only endpoint that returns the not-yet-closed menus a given lunch item currently belongs to.
- "Not yet closed" means the menu's realtime status is `coming` or `available` (mirrors the existing status semantics already used throughout the package) - `completed` and `cancelled` menus are excluded.

## Capabilities

### New Capabilities
- `lunch-item-menu-usage`: admins can look up which currently open (not-yet-closed) menus a lunch item is attached to.

### Modified Capabilities
(none)

## Impact

- **Controller**: `LunchItemController` gains one read-only endpoint.
- **Model**: `LunchItem` gains an inverse `menus()` relation to `LunchBookingMenu`.
- **Package**: `packages/w3suga/lunch-ordering` only. No schema changes.
