Splitted up Types.hs and added more specs

You were right, separation into different files helps to separate concerns.

I have added a tile type that is the intersection of attributes of the Actor and
the StaticElement type. So you can define functions that have to work on both of
them over the tile type.

Actor    StaticElement  |  Actor    StaticElement
  |            |        |    |            |
  |   toTile   |        |    |   toTile   |
  `-----.------´        |    `-----.------´
        |               |          |
        v               |        render
      Tile              |          |
                        |          v
                        |         Char