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
fixed exception juggling
More elegant dictionary updates

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

Refactor class-level members in sequence module
removed exec flag
test was wrong
pulling exceptions correctly now
Merge pull request #178 from wasade/fix_exceptions

fixed exception juggling
Merge branch 'master' of github.com:biocore/scikit-bio into drop_exec