Improve diff spitting and line grouping.

Segments diffs into 3 categories; significant (non-whitespace),
whitespace and new lines. Enables whitespace to be colored accurately
(or not colored at all).