Make BlockPistonExtendEvent only fire once and cause BlockPistonEvent.setCancelled(true) to stop the action. Fixes BUKKIT-2287, BUKKIT-3523, and BUKKIT-3529