Define some tests for next_power_of_two function
Implement next_power_of_2 function

* next_power_of_2 receives an integer and returns the next power of two number
* Define print_bits for debugging
Clarify what bit size means
Define allocate_matrix and print_matrix functions

* Matrices are represented as pointer to pointer as their size should
be dynamic, and not known in compile time
* Separate Matrix memory allocation in allocate_matrix function
it receives the address of the matrix (triple pointer), allocate the
memory needed and point the received pointer to the new allocated memory
Move auxiliar functions to the bottom of the file
Create strassen_multiplication.h header file and move function declarations there
Create assert function to compare matrices

* Add assert_matrix_equals declaration on header file
* Define assert_matrix_equals function and compare each value
Create matrix calculation ultility functions

* sum() adds functions together
* subtract() subtracts m1 from m2
* multiply() multiplies m1 with m2
* All three utility functions (sum, subtract and multiply) expect matrices
defined as pointer to pointers with previous allocated memory and set
the result into **result pointer to pointer matrix
* Utility functions only work with square matrices
* Add a test for each utility function
* Declare functions in header file