Handle players disconnecting during respawn. Fixes BUKKIT-4327

Prior to this commit, a player disconnected during a respawn event
would remain in memory. This causes a ghosting issue of players in
the slot count and player list as well as a slow memory leak.

This commit avoids re-adding the player to the player list (and world)
if they are disconnected. This ensures that the remainder of the respawn
logic is completed as well as ensuring a duplicate player is not left on
the server.

This commit also saves the player's file at the end of the method if
they have been disconnected to ensure that their next login is accurate
to the respawn event's actions. A player that was revived and disconnected
will reconnect as revived.