Heat kernels for class 2 nilpotent groups