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
@gregcaporaso and I just discussed this. It's a little strange to have a ``SequenceCollectionError`` be raised here, since it's not a requirement for ``SequenceCollections`` to contain sequences all of equal length. Could you add a new ``AlignmentError`` which inherits from ``SequenceCollectionError``, and raise that here instead?