Lots of implementation restructuring, including better cache classes, finishing ABM initial implementation, and the creation of a map chunk interface