Add recursive print_out for the diff.

Method Diff.print_out prints out the diff of the two
strings recursively one character at a time.
Rename Diff class to DiffTool
Rename _print_out to _build_diff.

Build_diff does what it sounds like to recursively
create an array of diffs with chars.

DiffTool
Add Diff Object.

Diff object encapsulates the idea of a diff into an internal
array of runs with diff types. Modified build diff to handle
this object and modify it accordingly as it goes along.
Add diff_object field to DiffTool. Add printing.

A DiffTool now holds a DiffObject for it's strings that is
lazily created. The diff_object can also print itself out now,
although there are some issues with empty newlines.