update and add dual likelihood

cf:
```C++
void CVariationalLikelihood::set_likelihood(CLikelihoodModel * lik)
{
	SG_UNREF(m_likelihood);
	m_likelihood=lik;
	SG_REF(m_likelihood);
}

```