Reorganizing read modules, get rid of puzzle types.
More approriate type for puzzle renderers.

Now a pair, and rendering the puzzle can no longer depend
on a solution.
more general parser/renderer matching with forall type