Fixed FastDTW on different length sequences. New data type.

Discovered and fixed a bug, in which fastdtw was not working on sequences of unequal length.

That bug itself was just a use of Nrows instead of Ncols. But the important change is that I simplified a lot of the dtwwindowed() operation by creating a new type WindowedMatrix. This is a matrix where each column has a given range of permissible rows. For any element read outside that range, a default value (defaults to Inf) is returned. Writing outside that range throws a BoundsError().

More simplification / unification of the code for plain dtw() and dtwwindowed() might be possible, but the exciting bit so far is that now the two procedures can use a single trackback function.

Further tests of the full FastDTW algorithm are needed.