* Separated `ssDNA` (single-stranded) and `DNA` (implicitly double-stranded)
classes. Convert between them using `.to_ds()` and `.to_ss()` methods,
respectively.
* `coral.Primer` instances now contain `ssDNA` instances, not `DNA`.
* `feature_type` is now an optional argument when initializing new `Feature`
instances. The default is 'misc_feature'.
* Added `to_feature()` convenience method to `coral.DNA` for generating a
feature from a given `DNA` instance.
* Fixed an issue where `coral.analysis.tm` returned an arcane message when the
input is a non-DNA character.
* Fixed an issue where read_sequencing returned `ssDNA`.
* Overhauled alignment and Sanger sequencing analysis modules. Added support
for using the MAFFT command-line tool as an alignment method, located at
`coral.analysis.MAFFT`. Added MAFFT as an option for the Sanger analysis class.
Added a new function, `needle_msa`, that generates a reference-aligned MSA
representation of a set of Needleman-Wunsch pairwise alignments. Added
`coral.analysis.substitution_matrices` module, which adds a SubstitutionMatrix
class for easily specifying customized substitution matrices for
Needleman-Wunsch alignment as well as built-in matrices such as BLOSUM62, DNA,
and DNA_SIMPLE.
* dev note: started using zest.releaser to automate releases.