added fromString, which creates a level from a string

The fromString function takes also a TileBuilder, which translates
individual chars from the level string to either actors or static
elements.

I extracted the functionality of getting the next free id from
createTask into its own function. The function freshID returns the next
free id and increments the appropriate field in the level type.