Added a benchmark to test a large diff.  The speedtest{1,2}.txt files
are the same ones used by Neil Fraser in his speedtest code.
added line-level benchmark
Changed main diff machinery to use []rune instead of string.

The main benefit is avoiding invalid UTF-8 strings due indexing by byte instead of rune.
Some code was rune-aware, but some wasn't. And some code, like the HalfMatch code, indexed
directly into the middle of a string, so it would have been difficult to make it rune-aware.

As an additional benefit, large diffs are sped up significantly: compare the DiffMainLarge
and DiffMainLargeLines benchmarks, which sped up by a factor of 2 or more.

Did not change match or patch code.  Did not change functions that manipulate diffs.
Did not change the line-mode diff cleanup routines.
Exposed DiffLinesToRunes and did other minor cleanup.

If clients clients use DiffLinesToRunes they can avoid an extra string to rune conversion.

Also fixed some comments and got rid of an unnecessary helper function.
added clarifying comment
ran gofmt
rebased on upstream/master
Merge pull request #14 from goojba/runes2

Move string-based functions to rune-based ones