Initial stubs for new material registry.
Implement an abstract minecraft registry that caches lazily-loaded types
Block: forgot to make setType use BlockType. Also move Registry classes and backend engine.

Backend unit tests still have to be updated.
MinecraftRegistry did not move properly.
Fix backend tests.

Also makes FallbackMinecraftRegistry globally usable, which will be used by most server layers for now.

Backend now compiles; just server layers left.
All server layers: Implement new API changes and use FallbackMinecraftRegistry for all server layers for now.

Everything should compile without any issues now.

This changes the API a bit more to include legacy ids.
Sponge: Implement Sponge's native block/item registry
Fix missing license header.
Merge pull request #869 from Hidendra/feature/5.0-game-registry

New block & item registry