bayes for days

feat(training): sds-bot --weights, and a named baseline file master

The bot loads a fitted `M` from the `weights` object of the file `sds train` writes; without the flag it plays the hand-authored set as before. Every failure is fatal and named - no file, not JSON, a feature that does not exist, a `local` feature that may not carry a weight - and a file that leaves a baseline feature at zero says which. `weights/hand-authored.json` is the baseline as a file, checked against `Weights::hand_authored` by a test, and the flag rides along in the harness's `--bot` command string.


+264 -8
5 changed files