Sky Drop refactor and bug fixes

- Changed Sky Drop to use onTryHit on its first hit as well as its second,
  allowing it to check for Protect and Fly naturally.

- Added messages when a Pokemon is freed from Sky Drop.

- Allow Flying-type Pokemon to be hit by Sky Drop if their Ground immunity
  has been removed.

- Added BeforeMovePriority to allow Sky Drop to interact with Stance
  Change properly.

- Prevent a Pokemon trapped by Sky Drop from Mega Evolving.

- Added onRedirectTarget to allow Sky Drop to interact with Ally Switch
  properly.
I'm not personally 100% sure, but that particular line of code was already there when I started, and hasn't changed besides an extra indent to fit it in an `if` statement...