Updated parseWorld and added printWorld

Tidied up parseWorld to use words on one step (rather than lines) and a
pattern to split the list of words. Moved applyToWorld function inside
the definition of parseWorld.

Added printWorld definition. Generate coordinates as a list of list of
(Pos, Cell) pairs in row / column order (i.e. across each row in turn).
Then convert to a string and add a prefix (based on Pos).