Store pointers to adjacent buckets

When redstone is running, it needs fast access to the blocks directly
adjacent to it.  Therefore, we cache the blocks that are NORTH, SOUTH,
EAST, WEST, UP and DOWN from the current block.  This results in
slightly slower SETs but much faster TICKs.

Running 1000 SET, GET, TICK instructions:

--Before--
world_add_block - 0:4642872
world_get_block - 0:3467611
redstone_tick - 8:282937348

--After--
world_add_block - 0:30675991
world_get_block - 0:2992707
redstone_tick - 0:136684097

As you can see, this results in a massive speedup (x37 in this case)