Manage CovarianceHMatrix::hmat_ with a smart pointer

Current code segfaults because of copy assignment operator;
we could fix it, but using a smart pointer is simpler.