Commit Briefs
rename diff_atom->d to diff_atom->root, because it always is
The idea was that for each diff box within the files, the atoms would have a backpointer to the current layer of diff_data (indicating the current section), but it is not actually needed to update the backpointer in each atom to the current diff_data. That is why the current code always points atom->d to the root diff_data for the entire file. Clarify by proper name. Constructs like atom->d->root->foo are redundant, just use atom->root->foo.
add support for ignoring whitespace (-w option)
Tests grow the ability to call diff with options. Options to use are encoded in the test file name as a single dash followed by a string of option letters. E.g. -wp for 'ignore whitespace' and 'do patience'
diff result: ensure sane order of result chunks
Ensure that a adjacent chunks of same type are combined, and that a minus block always precedes an adjacent plus block. The upcoming myers-divide optimization is prone to produce weird ordering of plus and minus chunks.