The base KL method class

@karlnapf 
Take a look at this base class.
Once it is ready to merge, I will send the two sub-class KL methods.