`typechange` refactor
Type changes have been moved out of ModifyPokemon, and now are only
updated manually such as at clearVolatile or during forme changes.

This fixes interaction between: Transform, forme changes,
Conversion, Conversion2, Soak, Camouflage, Reflect Type, and
Color Change.

We're now one more step closer to getting rid of the ModifyPokemon
event.

Type changes in gen3 and gen4 will need to be redone for the new
typechange system.