NEW : implementation of equals() and hashCode()

This should be usefull to compare states during a graphsearch to avoid redundancy
NEW : improve heuristic function and allow choice
ENH : Add number of empty locations in heuristic 1

Thanks Poum =)
ENH : remove useless boolean variable to send cutoff() back quicker
ENH : if only one action possible for a location, take this one only
NEW : loop on all sudoku + add counter on BestFirstSearch