Fix Piston Event Behavior

Please see [CraftBukkit#1305](https://github.com/Bukkit/CraftBukkit/pull/1305). This change contains two fixes: it prevents BlockPistonExtendEvent from firing twice and cancels the piston extension or retraction when the event is cancelled.