Cleaned up MainHeap -> MainHeapType

The abstraction was just noisy, so cleaned it up a bit to looked like
SingletonHeapType.
Started work on a diff module.

Started work (but did not finish) on a diff module that can be used to
diff memory blocks. The module uses an dynamic programming solution to
the longest common subsequence problem (see
http://en.wikipedia.org/wiki/Diff).

As it turns out I already had this algorithm implemented in Python from
bio, so I'm using that as inspiration.