Added a new preliminary mapping + metadata framework.

The eventual goal is to add:

1. Support for mapping block, etc. names (minecraft:stone, etc.)
2. Proper support for entities in WorldEdit
3. Support for querying for metadata about a block, entity, etc.
4. Extent support to biomes, structures, and so on
Added Creature metadata interface.
Added incomplete entity support to all Extents.

The Bukkit implementation supports the new entity API, but it has
not yet been tested. The Forge implementation does not support the
entity API yet.

At the moment, an UnsupportedOperationException is thrown for
Entity.getState() in some implementations, but use of an exception
should probably not be allowed.

BaseEntity is now an interface. It should not be possible to create
instances of BaseEntity because it may be implementation-specific.
Merge remote-tracking branch 'origin/master' into mapping
Merge branch 'master' into feature/mapping

Conflicts:
	src/bukkit/java/com/sk89q/worldedit/bukkit/BukkitCommandSender.java
	src/main/java/com/sk89q/worldedit/internal/LocalWorldAdapter.java
	src/main/java/com/sk89q/worldedit/util/TargetBlock.java
Fixed formatting error in BukkitEntity.
Changed Location to use Extents rather than worlds and overhauled the new Entity code a bit.
Added new Extent-compatible Clipboard and BlockArrayClipboard classes.

The goal is to replace use of CuboidClipboard with these new classes.

Support for entities, //flip, //rotate, and //distr still needs to be
re-implemented.

DataException was also removed from BaseBlock because The Base(...)
classes should be "dumb" blocks without any validation.
Fixed RepeatingExtentPattern repeating a (1, 1, 1) smaller region.
Merge branch 'master' into feature/mapping
Added TransformRegion to transform another Region.
Added AffineTransform.scale(Vector).
Fix compile error in Transforms caused by merge.
Added new preliminary non-destructive //rotate and //flip implementations.

Blocks themselves are not yet rotated/flip.

//flip now only flips across the player. -p was removed.
Merge remote-tracking branch 'origin/master' into feature/mapping
Added -m for //cut and //copy to set a source mask.
Merge branch 'master' into feature/mapping

Conflicts:
	src/bukkit/java/com/sk89q/worldedit/bukkit/BukkitWorld.java
	src/main/java/com/sk89q/worldedit/command/SelectionCommands.java
BlockRegistry, MaskRegistry, PatternRegistry -> *Factory

'Registry' will need to be used for the block, entity, item,
and so on registries.
Moved legacy block classes to the legacy source root.
Added GSON, Trove as dependencies and enabled minimizeJar for shading.