Overhaul the undo system a bit.
Fix copying entities with a world offset
Add raw explosion method to NMSUtils

Also add watch() method which can be used to watch for explosions
caused by a specific entity (e.g. the player) for arbitrary undoable
explosions.