bayes for days

feat(melee)!: the charge, priced against the firing turn it costs master

A charge is declared by moving: `MovePathHandler` watches the submitted path for a `CHARGE` step, builds the `ChargeAttackAction` itself and hands it to `Game.addCharge`. `Entity.isEligibleForFiring` returns false for a charging unit, so a charge candidate is scored with every volley column zeroed and a new `charge_damage` column carrying its whole offence, against the same denominator `expected_damage` divides by. Adding a column changes the basis fingerprint, so every fitted weight set is stale against it. Change-Id: I6f22cf9396afb62e685e0e7f00e540a36b784993