Chunk Safety

Adding infrastructure to allow machines to survive chunk
loading/unloading even if the machine straddles chunk boundaries.

If a machine is no longer whole after a chunk unloads, it goes into a
PAUSED state. Game logic is not run while paused, but you will get
onPaused/onResumed callbacks in case you need to start/stop something.

Distance has been removed, which lightens the attach/detach logic
considerably. IMultiblockParts now have a "visited" value, which should
not be tampered with and is only useful for calculating attachedness.

All blocks are now marked for a description packet update when being
added to a multiblock.
Fixing update to only be called while assembled