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