Reorganize the moves so that moves_implemented actually lists the implemented moves, and moves actually contains moves to implement, plus group the remaining moves into similar classes
Implement Gust and TriAttack, since they're just PhysicalMove with SingleStrike
About the add Substitute directly to the Pokemon class... yuck
Still implementing Substitute... changed takeDamage and currentHP in Pokemon, and that precipitated a bunch of changes. Split StatusChange trait into Volatile and NonVolatile types for MoveResult typechecking.
This is returned by Pokemon.takeDamage and indicates what the result of taking damage was: alive, KO, or subKO
Finished implementing the (hopefully) finished MRB, got all tests passing again