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
Can you remove `Alignment.is_valid`? All of the validation is happening in `SequenceCollection.is_valid` so this method can be inherited now without being overridden.