Improved versions of the algorithms, including an abstraction of kernel
management that decouples the kernel in the gKDR method. This
abstraction goes into:
math/kernel.py

and handles the gram matrix creation and the gradient computation for
those kernels that admit it.