update and add dual likelihood

Note that `CVariationalGaussianLikelihood* get_variational_likelihood()` is protected.
Let me know if you think sgref is needed