Initial port of Alignment phylip writer and tests

Writer now streams data to file; minor cleanup to code and tests, stil more to do.
Refactor error-case unit tests to remove duplication
Update phylip writer to use Alignment.is_valid

No longer breaks encapsulation. Also updated error messages to better match I/O framework.
Phylip writer checks ID length <= 10 chars.
Phylip writer now raises PhylipFormatError

Instead of SequenceCollectionError. Makes more sense in the context of I/O.
Phylip writer outputs fixed-width first column

Padded to 10 chars.
Phylip writer now split sequences into blocks
Add BiologicalSequence.update

Still needs unit tests.
BiologicalSequence.update -> BiologicalSequence.copy

After discussion with @ebolyen, we decided that copy is a better name for the method. It now accepts **kwargs instead of a dict, simplifying the implementation and API.

Still need to add unit tests.
add tests for BiologicalSequence.copy
Update skbio.sequence to use BiologicalSequence.copy

k_words() now returns BiologicalSequence objects. Removed unused constructor parameters.
Update skbio.alignment to use BiologicalSequence.copy/__getitem__

Deprecated Alignment.majority_consensus constructor parameter.  BiologicalSequence.__getitem__ now supports list of indices to keep. Removed broken constructor argument to Alignment.k_word_frequencies.
Add SequenceCollection.update_ids

Still needs unit tests.
add unit tests for update_ids error cases
finish unit tests for update_ids
Deprecate SequenceCollection.int_map in favor of SequenceCollection.update_ids
Deprecate Alignment.to_phylip in favor of Alignment.write
Merge branch 'master' into issue-653

Conflicts:
	skbio/io/__init__.py
	skbio/io/_exception.py
ENH: registry will now automatically construct read and write methods
DOC: removed duplicate format listing