Removed all trimming/auto-trim logic. Build fails if compiled dict
exceeds flash budget. CHD now uses spare slots (1.23x load factor)
and fewer buckets (entry_count/5) for reliable construction at any
entry count. Binary format bumped to v3: header stores slot_count
and entry_count separately.
Central has more code overhead (behavior, formatter, output, undo,
BLE client) → smaller dict budget. Peripheral is lean → gets bulk
of dict. Ratio-based partition replaces fixed bytes-per-entry estimate.
Full 147K Plover dict, zero trimming target.
Importance-based partitioning — highest-importance entries on left
(central) for zero-latency local lookup, remainder on right
(peripheral) queried over BLE on miss. Both halves embed their own
MPHF binary. Configurable block size for tighter compression.