Added a few methods to solve a Soduku puzzle
  solve_grid() - the main method which iterates through each square on
the grid and calls other methods which try to work out a single possible
value for the square, each sub method is compounded so the result of one
is passed into the next
  solve_row() - takes a list of possible values and narrows it down by
using a second list of row data
  solve_square - converts a 3x3 square of data to a single dimension
list and uses solve_row() to find the remaining values