Added whitspace token generator

Whitespace will largely be ignored, but we want to keep track
of it for certain scenarios (such as trailing whitespace,
if the user wants to keep it for some odd reason).