Split World class into WorldBase and World

For future EnhancedWorld
Added EnhancedWorld<_tp>

Same as World, but maps tile ids to given objects (ie strings
for better console output / colours for image output etc.)