refactor GPs framework

- renamed get_posterior_approximation_mean/covariance() to get_posterior_mean/covariance()
- implemented get_posterior_mean/covariance() for exact inference
- now we can use GPs with different type of features