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.
Add a new block metadata framework and fix //rotate and //flip.

Remove the previous Mapping interfaces.
Flip direction of //rotate to have it match previous behavior.