bug fix

@vigsterkr 

Sorry for my mistake.
I forgot to record all the change in the previous PR.

@vigsterkr 
any feedback about this? I have no idea of why such function call is a bad way? can you point it out?

The idea is `LogitVGPiecewiseBoundLikelihood` and `NumericalVGLikelihood` are direct sub-classes of `VariationalGaussianLikelihood`.
 `m_s2` is a protected data member in  `VariationalGaussianLikelihood`.
`m_noise_factor` is used to ensure `m_s2` is positive. 
the function `VariationalGaussianLikelihood::set_variational_distribution` will ensure `m_s2` is positive.
 `set_variational_distribution` in a sub-class will do additional class-specific work.