feat(quickadapter): make HPO trial seed variation configurable (#119)
Add freqai.optuna_hyperopt.vary_model_seed_by_trial (default true) to make the
per-trial model-seed variation explicit.
- true (default) preserves the historical behavior: each HPO trial adds
trial.number to the regressor model seed. false uses the same model seed for
every trial and the final fit.
- Independent from freqai.optuna_hyperopt.seed (Optuna samplers + label-candle
shuffling); wired through the canonical defaults, config template, startup
logging, and README.
- Seed NGBoost's base DecisionTreeRegressor as well: NGBoost.random_state only
seeds subsampling/validation split, not the cloned base learner, so the base
tree needs its own random_state for reproducibility.
BREAKING CHANGE: the optuna_hyperopt boolean options (enabled, continuous,
warm_start, space_reduction, vary_model_seed_by_trial) are now validated at the
option layer and raise ValueError on non-boolean values instead of relying on
Python truthiness; a config passing a non-boolean (e.g. 1 or "false") for these
keys must use real booleans.