Extracted queue/history from EditSession, and made undo/redo operation-based.

Queuing code has been refactored into com.sk89q.worldedit.transaction.*, while history code has been refactored into com.sk89q.worldedit.changelog.*. LocalWorlds now choose the transaction implementation (queuing method).

There are the following caveats:
- Block bags are completely broken
- Checking of the validity of a block type does not occur in EditSession anymore and must be moved to the implementation
- The handling chests and ice so that they do not cause problems on removal is no longer in EditSession, and must be moved to the implementation in the future
- Fast mode may no longer work entirely
- MaxChangedBlocksException now inherits EditException, a RuntimeException