Added implementation of modified Smith-Waterman Algorithm

This logic for traversing the matrix looks similar to logic in the getMatch() function for SmithWatermanResult. Is there any fancy visitor pattern stuff we can do to make this more DRY?