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 re-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.