added traversals which returns an infinite stream of steps to traversal. some refactoring

added traversals :: Grid -> StdGen -> [Int]

makeRover and other functions now take a Grid rather than a pair of ints