NEW: calculate number of conflicts (row and cols) for a square

In order to realise the Hill Climbing algorithm, we need to be able to evaluate the number of conflicts on rows and cols for a specific square.
CLEAN: corrected an indentation for disambiguation

I corrected the indentation of an if statement in SudokuActionsFunction for well showing that it doesn't own to the for statement.
NEW: calculation of conflicts for all the grid

I created a new function for calculating the number of conflicts on row and cols since we assume that zone constraint is respected by the random filling.
I cleaned the calculation of conflicts exploding it in multiple function.
-performance improved : we just loop on the line and on the column (not on all the grid).
-readability improved : the main function was exploded into private functions, only grid calculation is public since we just need this one for Hill Climbing
NEW: Heuristic function for Hill Climbing
NEW: Defined new Sudoku goal test for Hill Climbing

I defined a new test for Hill Climbing success since the table is filled at the beginning of the algorithm.
Thus we should test for constraint satisfaction to see if we are on goal test.
CLEAN: Changed inconsistent naming
NEW: New attribute storing the fixed values

Added a new attribute in SudokuBoard : a boolean table allowing us to know if the value is fixed or not.
Adapted SudokuDemo for initializing this table.
NEW: Permute function allowing a new action for Hill Climbing algorithm
NEW: creation of the permute action

I chose to create a new class because it seems to me that it's clearer than adapting other SudokuAction for matching both ADD_NUMBER and PERMUTE_NUMBERS.
FIX: Corrected problem with fixed values

While trying to copy a SudokuBoard, fixed values were not copied and initializeFixedValues was called causing loss of information using Hill Climbing.
NEW: Hill Climbing call function
NEW: creation of Hill Climbing function factory allowing to use actions and realize permutations.

This code is not working at the moment.
Permutations are well added to the list of actions but not realised on the board. It seems that there is an inversion between the value1 for location 1 and the value2 for location2.
Going to investigate on this point.