feat(web): add routine engine, NL parser, and context messages
- Routine engine: data model, state machine (start/pause/resume/complete/skip/cancel),
4 built-in templates (Morning, Workout, Cooking, Wind-Down), template instantiation
- NL parser: regex-based parsing for relative times, absolute times, durations,
pomodoro, urgency detection, label extraction (no LLM dependency)
- Context messages: keyword→message rules for 20+ categories (meetings, flights,
cooking, health, etc.), warning message formatting
- 105 unit tests (45 routines + 37 NL parser + 23 context messages)