Found a minor optional performance increase

Performance can be increased by not bothering setting the matrix values
to 1 or 0. The final column still has the correct answer, which is all
that is really important, but the rest of the matrix will be incorrect.
However, it is trivial to generate the rest of the matrix if required.
Also fixed a small bug in the debug code where the reference to the
matrix was incorrect.
New GPU kernels and CPU improvements

Added a third version of the CPU algorithm that tries to simplify the
loops by combining the dividing and subtracting procedures. Added 3
more GPU kernels (6, 7, 8), which are mostly WIP or broken. Changed
matrix comparison function to compare only the last column.