Heat Kernels in Sub-Riemannian Settings