Add preceding whitespace collection to tokenizer

Code from the EuroPython sprint to collect the whitespace preceding each token in the tokenizer. Hopefully this is a step on the way to allowing get_code to return the original source and allow refactorings to only edit the requested code.