added step arg to plot.surf
fix to only store hessians when calculated

previously we stored a hessian for each iteration even though it could only
change every hessian_period steps