Added Snow and Soil, improved DI of main terrain

Can now easily change between various things thanks to DI, rather than
manually commenting bits in and out!

Also changed the way it selects what texture to use as the old version
was rather ugly. At least now it's all hidden and again, DI'd so you can
easily swap the rules around by passing in a different Solver.

The current Solver rules were updated to include snow and soil, plus
some different cases for when to use the various textures.