Changed order of steps. Maze can now find solutions but doubles up on some steps.
result path reversed to give right order, and 1st step added as head
Xs and Ys must be > 0!
Previously there was no lower bound on maze size.
Also moved mazeSize check to first clause in valid/3 to eliminate unnecessary calculations