Puzzle: don't use an owned pointer to cells

... we don't need one apparently.

Signed-off-by: Giel van Schijndel <me@mortis.eu>
Add a simple unittest: verify the puzzle can be solved

Signed-off-by: Giel van Schijndel <me@mortis.eu>