KLApproxDiagonalInferenceMethod (the third KL method)

@karlnapf 
Take a look at this.
Note that it may have similar issues you mentioned in other KL methods.
I will correct all of them tomorrow.
Just have it run to ensure everything work well.
It seems it is not so easy.
see 
http://onlinelibrary.wiley.com/doi/10.1002/nla.779/full
and
http://math.stackexchange.com/questions/18488/diagonal-of-an-inverse-of-a-sparse-matrix


diag(K\diag(w)) is what I need. 
However, K\diag(w) will lead to O(n^2) at each L-BFGS update since vector w will be changed at each time
If we can O(n) at each L-BFGS update, we may have to lose some accuracy by pre-computing K^{-1}.
Any suggestion?