Add leading/trailing whitespace classes to hard tab tokens

#2304 no longer cleanly merges but the issue is still present where leading/trailing hard tabs don't get a `trailing-whitespace` or `leading-whitespace` CSS class applied to them.

Closes #2304