update to use frozenset
Refactor class-level members in sequence module

Class-level attributes are now static methods. This fixes a number of issues:

- removes the danger of accidentally defining static attributes (e.g., temporary variables used in a for loop)
- complement mapping can now access the gap alphabet, so we don't need to remember to update gap character info in two places
- users won't be able to accidentally update things like valid IUPAC characters, complement mapping, etc.
- removes some duplicate code involved in constructing a few of the members

Additionally, ```alphabet``` and ```gap_alphabet``` are now static members.

Fixes #154 #167.
fix a couple of docstrings
all staticmethods are now classmethods

Thanks for the input @gregcaporaso!
Add unit tests for static methods

Now I can sleep at night
More elegant dictionary updates

Thanks @wasade!
Merge pull request #169 from ElBrogrammer/issue-167

Refactor class-level members in sequence module