Cleanup previous commit.

- Judson
Solve initial boundaries.

Solves the initial boundaries, using the initial LCS search to
set the limits for path p_0, doing a complicated copy to
path p_m.

Next step is to implement SingleShortestPath.
Add SingleShortestPath

Add an implementation of SingleShortestPath, which finds
the shortest path p_mid between path numbers upper and lower,
and then updates the path limit values. Appears to work (more
details below).

Called from within a dummy function for FindShortestPaths, that
currently does not do the recursion, but it does call
SingleShortestPath once, to do one path at p_{m/2}.

The one path seems to work correctly for the case
A=abcde, B=abcde

- Judson
Fix table range edges. Add DEBUG constants.

Fixed an issue with the table range edges, caused by not having
valid data above or to the left of the table range. In the
square problem, we fill with zeros along these edges, and now
the code fills zeros along the limiting left and upper edge
efficiently. Wasn't an issue with negative sentinels in the
table, but once those were removed for speed, problems came up
quickly.

Also add DEBUG constants to turn on and off certain features, such
as sentinels and printing features. These should compile completely
out when false.

- Judson
Fixes: Bottom corner start, and Aext vs A

The first fix corrects an issue where the backward path traversal was
not starting in the lower right most corner of the valid table
entries every time, becaues there are 2 different boundary conditions,
the m-wide band boundary, and the lower path limit boundary.

The second fix was needed when comparing A and B chars in the lower
half of the table, indexing into A instead of Aext.

- Judson