Sudoku solver first working version

This program does what an average human (I) would do to solve a sudoku.
check_sudoku(g):
accepts a sudoku grid (list containing 9 lists, each of which contains 9 integers which is permutation of range (1, 10)) as input, returns None if input is not in the above mentioned format, returns False if there are duplicated numbers according to the sudoku rule, and returns True if conforms to the sudoku rule (at least with some 0's as placeholders for undetermined numbers).

solve_sudoku(g):
accepts a sudoku grid, which possibly contains some 0's representing undtermined numbers, and acutally finds a solution and returns it.
If it is not solvable, returns False. If there are several possible solutions, it just returns the first one found.

prints messages to keep track of it's algorithm
Merge branch 'master' of https://github.com/GM3D/solve_sudoku