refactor(convey): fold nine date-nav index builders into one helper master
Nine /api/index routes each reimplemented the same fold from {day: total} to the date-nav wire contract. Extract it into a single pure helper, solstone/convey/date_nav.py::build_date_nav_index, mirroring the day_grid.py precedent, and migrate all nine routes onto it. Deletes the five private _build_date_nav_index copies. The helper takes exactly one parameter and accumulates totals raw: no rounding, no int() coercion. That keeps float cost sources intact and makes callers adapt at the call site rather than the helper growing flags. Sorting inside the helper makes the payload deterministic: sol and tokens enumerate days via glob(), so month insertion order was previously filesystem-dependent. tokens rounds month totals to 2 decimals at the call site, preserving the existing wire contract now that the helper accumulates raw. This is not a behavior change: _aggregate_token_data already rounds each day to 2dp before the fold sees it. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>