Step 3: Refactoring the things

The next step appears to involve pulling apart the messy lump of game
code into bundles of components grouping common functionality:

 - 'Actor' : a common base component for stuff in the world I guess
 - 'Grid' : Actually something that is placeable on a 2d grid. Icky that
   it uses the Game state here to find grid width. I wouldn't do that.
 - 'Tree' and 'Bush': Defines components for tree and bush. I guess
   maybe I can see this as 'Tree-like characteristics' rather than the
actual entity - as you could still mix tree with something else.

This does simplify game a lot. The string stuff is weird though (how
components grouped together in a subcomponent or whatever.