Fixed convolve method and a memory leak

The convolve(..) method wrote the result of the convolution into the image parameter instead of the result parameter, which is now fixed.

Preprocess obtained the gradient strength from the computeGradientStrength(..) method without deallocating the result later on. It does now.
Implemented Binarization, threshold to be set

Introduced the binarize(..) method and the Kernel binarizeGPU(..) which take a double image and binarize it according to a threshold. preprocess(..) already makes use of this and now returns the binary image. In accordance with that, preprocess(..) now returns a bool pointer instead of a CImg. The threshold can be passed via the terminal. As of now, this is an absolute value, not a divisor of the range represented in the image.
Introduced templates to cudaHough

Functions in the cudaHough namespace are now templated where applicable. To allow continued separation of declaration and definition into .h and .cu files, explicit instantiations are done at the bottom of houghTransform.cu.