Added implementation of main diag. (blocks)

* The blockify method is the one used with MIC, so it's only suited to
  be run in CPU. TODO: port it to GPU
Added some doxygen comments in the blocks header
Adds test for the GPU point method
Implements GEMV inside a CUDA block (includes test)
Implements APY inside a CUDA block (includes test)
Implements TRSV inside a CUDA block (includes test)
Implements TRPAISV inside a CUDA block (test inc)

* TRPAISV stands for "TRiangular matrix Plus Alpha times Identity Solve
  for Vector". It is similar to TRSV, put an alpha value is given and
  added (subtracted in this case) from each element in the matrix main
  diagonal. This function eliminates the need for temporary storage
  space in the BartelStewart algorithm.
* Also, this commit fixes TRSV.
Implements TRSYL inside a CUDA block (test inc.)

Also:
* Fixes TRPAISV for the project needs
* Fixes GEMV for the project needs
+ Fixes and test refactoring
Solves the first superdiagonal (block method)
Implements GEMM inside a CUDA block (test inc.)
Solves the Nth (N>1) superdiagonal (blocks)
Separates CUDA blocks from the actual matrix block

* In theory (not tested yet), now the size of the CUDA block is
  completely independent from the matrix block that it is computing.
Merge pull request #1 from pfac/cuda-blocks

Implements the Matrix Square Root algorithm using the block method.