Ported PHYLIP I/O to skbio.io.phylip, and more!

# ~~Not ready for merge~~
~~Relies on #672 being merged first.~~

# Changes

* Ported `Alignment` PHYLIP format writer to `skbio.io.phylip`, added format specification
* Added `SequenceCollection.update_ids` which provides a flexible way of updating sequence IDs on a ``SequenceCollection`` or ``Alignment``
* ``BiologicalSequence.__getitem__`` now supports specifying a sequence of indices to take from the biological sequence
* Added ``BiologicalSequence.copy`` for creating a copy of a biological sequence, optionally with one or more attributes updated
* Fixed non-serious bug in the k-words code: `constructor` parameter was being ignored
* Deprecated a bunch of stuff
* Updated many methods in sequence and alignment code to create new objects in a more consistent and safe manner (e.g., using `copy` and `__getitem__` instead of `self.__class__`)

See changelog for more details. Fixes #653.

@ebolyen @gregcaporaso can you please review?
Unfortunately it can't be removed because if `constructor=str`, the join must still be in place. Once we're guaranteed to always return a `BiologicalSequence`, the line can be removed.