Implement callbackSort

This function uses a quicksort algorithm.  The user must provide a
callback comparison function.

This commit closes #34 on GitHub.
Implement callbackSort unit test

The code is mostly copy-pasted from the integerSort test, but it does
add a simple integer-compare callback.  Perhaps common callbacks such
as that one could be added to the kernel?
Reword callbackSort's notes
Update compareStrings to handle alpha compare
Actually didn't need to invert carry flag

hurr durr
callbackSort: Break unneeded register saves out of recursion

This saves 4 bytes of stack *per recursion* at the expense of a one-time
penalty of an extra call.
Mention stack space usage in callbackSort notes
Fix alignment

I like this way better, since the routines in question are subroutines.
Add callbackSort to the kernel jump table

I forgot to do this when it was first committed.
Fix bug in callbackSort

callbackSort incorrectly assumes that BC=1 at a couple of points.
Implement indirect16HL, indirect16HLDE, and indirectCompareStrings

In particular, indirectCompareStrings is very useful.
Minor optimizations

Fix forgotten recursion call, and optimize a stack push sequence
Fix swap routine

You have to actually increment the addresses you're swapping, duh.
Change unit tests to do a string comparison
Invert carry flag before leaving compareStrings
Merge pull request #46 from KnightSoft/sort

callbackSort