Split generic coding algorithms into reusable packages
Extract from ocaml-tm-sync into standalone packages:
- ocaml-viterbi: convolutional codes + Viterbi decoder (6 tests)
- ocaml-turbo: parallel concatenated codes + BCJR/MAP decoder (10 tests)
- ocaml-ldpc: belief propagation decoder (7 tests)
These implement standard algorithms reusable beyond CCSDS:
Viterbi (DVB-T, DAB, 802.11a/g), turbo (3G, LTE),
LDPC (DVB-S2, 5G NR, WiFi 6).
tm-sync keeps CCSDS-specific code (randomizer, RS interleaving)
and re-exports the generic packages for backward compat.