Change blocks to contain other_start instead of hash...

This should still allow us to align the blocks, whilst giving us
enough information in the case of insertions that we can produce a
reversible patch.
Modify hunk to produce zero length views.

Also a couple of hunk tests.
Add hash_table_counter_get...

So that we can seperate tests from increments/decrements.
Move hash_counting_table decrementing...

This means that everything up to the point we have aligned with in
the other stream will be removed.
Stop using the return value of hash_table_counter_dec
Rename other_start -> counterpart_start
Update block docs
Remove unused return values from hash_counting_table_inc and _dec
Collapse blocks and hunks (part 1)...

Made a "hunk_factory" that does unique_blocks and pair_blocks together.
Get to a point where a test can be run on the hunk_factory (needs more work)
Make hunk code actually do all of the diffing...

and update tests accordingly.
Augment multiple chunk test to include chunks of unequal length
Remove out-dated docstring
Merge branch 'refactor_hunking'

Combine the unique blocks code and the diff-producing/hunking code into one
method.