First steps towards blasifying the library.
Renames matmul.cl to operations.cl
Generalizes the old functions to blas form.

- Definitions are moved to the header file.
- Removes matrix_multiplication_cl() functions. The usage can be replicated through blas_sgemm() with alpha=1 and beta=0.
- Creates blas_sgemm kernel functions, almost as a copy of the matmul one.
- matrix_multiplication() function can no longer be accessed, but the code will be removed when blas_sgemm gets the MPI functionality.
- Removes long unused matrix_print() method.
Cleans matmul function in operations.cl.
Almost finished the first blas function with MPI.

It's not outputting the correct values but everything else seems to
be working properly. The bug might be due to the MPI_Scatter()
function when applied to A.
Seems to work with MPI now, but we need to test a bit more.
Works on a few more cases.
Corrects a bug with Scatterv and Gatherv.

It's a bit confusing, but it should work now. It seems that, when
using intercommunicators, root process doesn't send a message to
itself.
Obviously enough, we can use now Gather/Scatter.

No need for the Gatherv and Scatterv.
I have this strange feeling that this was working from the very
beginning.
MPI_Init and MPI_Finalize must be called in main.

The reason is that the library can't know when the programmer will
finish the process, so it delegates to her those calls.
Merge branch 'mpiinit' into blasify

Conflicts:
	libhipeless.cpp
	main.c
	mpihelper.cpp
Adds initialization of C matrix in main.c

The beta part of blass_sgemmA is not working at the moment, because
C it's not passed as reading parameter to the opencl kernel.
blas_sgemm works properly with alpha and beta.

It checks the beta parameter to know if it must scatter C and write
on it. In the case that beta=0, it doesn't add any heavy overhead
(just a couple "ifs").
No need for root_argument out of MPI anymore.
Changes sgemm to the original BLAS interface.

Now has the same interface for blas_sgemm that appears here, for
example:
http://docs.oracle.com/cd/E19422-01/819-3691/sgemm.html
Merge branch 'blasify-transpose' into blasify
Fixes unmatching brace from automerge.
Changes to functions to match the blas interface.

A lot more of parameters are coming into the OpenCL kernel, they
will be useful for working with transposed matricces.
Merge branch 'blasify' into blasify-transpose
Changes operations.cl to work with transposes.

The rest of the library is not adapted yet, so the transposes only
work when the values of m, k and n match.