Spatially varying kernel

1. Refactoring of kernel classes (Separated Interface and basic kernels from kernel combinators)
2. Introduced spatiallyVaryingKernels

(Should be merged after #93)
you could have computed directly invNormalizationFactor avoiding one division (if it is something you call a lot, it is important to minimize expensice operation as much as possible)