Extracts diff to it's own class

Adds new class NewDiff to hold diff data.

Refactors tokenizer to use the new diff class instead of a plain
array.

Refactors tokenizer to remove duplication.