Changes solution to use stack

This shows the order the heuristic works.  Also, the extra info allows a
human to try to understand the puzzles.
Refactor methods into LPuzzle

Lots of use of the Pull Up tool.

This solving mechanism should be effective for other variations of the
puzzle.
Simplifies some types

List<Point> over int[][] the marginal performance hit isn't worth the
confusing 2-d arrayness.
More extraction.

Everything but the randomizers and the width/height
Adds 8x8 L-Puzzles

These puzzles seem to be harder to find.  I had to look through 600000
to find 2.  I inflated their difficulty by 5 (they are much harder).