Refactored NeedlemanWunsch. Unfortunately, I changed the interface.

It appears to be two orders of magnitude faster. I broke the interface
because representing the substition matrix as a function was just too
slow.