Added diagonal and dense samplers, refactored static HMC algorithm into base class