* Add mechanism for retrieving BlockEntity data
This commit adds a mechanism for retrieving block entity data.
Block entity data is required to support for example text on signs,
banner patterns, or mods such as Domum Ornamentum.
* Fix the coordinate-packing for block entity-loading
This commit fixes the incorrect shifting of bits when
packing the chunk-local coordinates of a block entity
into a 64-bit long for lookups.
* Change mapping type of BlockEntity lookups
This commit changes the type stored for BlockEntity
mappings from a class of the type associated with the
ID to a method reference to its constructor.
* Tidy BlockEntity mappings
This commit introduces a small functional interface
to make the type less ungodly. Also silences the warning
about referencing subclasses in the superclass, it is
fine in this case, we're just storing a reference to
the constructor.
* Add missing license headers
The license headers were missing. Oops.