Make equal sequence length an invariant of Alignment.

Issue #670.

Modified the Alignment constructor to verify that all sequences have the same length.  If not, raise an exception.

Updated the method subalignment to calculate the indices only once now that identical sequences length is guaranteed.

Updated unit tests.

I believe the performance impact is small because the length of a list object in Python is an attribute of the object.  Doing len(a) returns the attribute's value:

In [31]: short_list = range(2)

In [32]: long_list = range(10000)

In [33]: %timeit len(short_list)
10000000 loops, best of 3: 51.6 ns per loop

In [34]: %timeit len(long_list)
10000000 loops, best of 3: 60.2 ns per loop
I'm not sure that this is testing the same thing anymore. The previous code tested that a `SequenceCollection` and `Alignment` wouldn't compare equal, even if they had the same sequence data. The new `Alignment` object you're comparing to here has different sequence data.