[x] Cell becomes a class with character data, height threshold, movement cost, name, (a property to know if it's water?), etc
[x] all available Cells are loaded via a terrain.yml file; they must be pooled and set to the terrain array (see #12)
[x] in the rest of the code, we still get a Cell from the map but obviously we can't use EnumSet like we do, so we must think about how to solve this (#17 in general should solve it because we would just pass a lambda selecting for the terrain "types", eg names, that we care about - or those having some specific properties, etc)