Allow customizing default move rank

This allows for more flexibility in assigning ranks for moves. The
battle engine uses the default move rank when predicting upcoming turns,
as well as when setting the initial CTB counter value for new units.
Move hit determination into Battle class

Each battler action has an accuracyType property that tells the battle
engine which accuracy function to use. This makes the accuracy system
more flexible, and it didn't make much sense to have the hit checks in
the individual effect functions anyway.