CPP preprocessed source now preserves the full source on refactor.

It gets the preprocessed source as given to the compiler, and fills in
as comment tokens everything that is missing from the original