Round 24: Proper backorder system — opt-in, tracked, and visible

New migration 0019 adds allow_backorder + ETA on products and is_backorder + expected_at on order lines. Backend checkout guard: 400 on OOS orders unless the product explicitly allows backorders. New /admin/backorders page with 5-card summary, filters, and one-click Fulfil. Dashboard nudge banner. PDP honours the flag: three-state stock pill, ETA subline, BackOrder JSON-LD, disabled button when not purchasable. Product form gets a Backorders section.