Block selection rewrite

Separates out core block selection, block selection rendering, and Maze-module-style blockselection input system.
Adds events for interfacing with engine (block selection, selection rendering) block selection systems.

Backwards compatibie LocalPlayerBlockSelectionByItemSystem.java for existing modules like Maze should eventually be moved to Core module or replaced with something better.  Only difference is that this system cycles through several different colors for selection rendering instead of using the "engine:selection" texture.