0.3.1 — benchmark-driven parser & engine fixes
Fixes found by agent-time-bench: inclusive 'between DATE and DATE' (#17), since/until/through/by open ranges (#18), cross-midnight ranges under day anchors (#19), 'earlier this week' (#20), ' before last' (#21), 'the weekend of ' (#22), 'first/second half of ' (#24). Zero conformance-baseline regressions; engine changes ported to Python at 100% parity. See CHANGELOG.md.