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.