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.
Like I said, it should be a different protocol-message. Simplest way is to add `[still]` to this one (and check for the flag client-side). More complicated way would be to add `[force]`