world: block system overhaul

Now no Block array is stored. Instead the world is an array of material codes, which can be deciphered through world.material[code] to classes. Block class itself has remained as a mediator in many occasions, but can be possibly removed completely later. WARNING this patch CAN fuck logic, because Block links outside the world now can be not actually synchronised with world state. Precaution is advised.

Signed-off-by: mkhropov <mkhropov@gmail.com>