organize Hessian computation with c++ potentials

the core function to compute the hessian is
BasePotential::get_energy_gradient_hessian.  if that is not overloaded
it computes the hessian numerically and
calls get_energy_gradient for the energy and gradient.

BasePotential::get_hessian simply calls get_energy_gradient_hessian and
discards the energy and gradient.