Ignore build, dist directories
setup.py: run 2to3 if running under Python 3
fasta.py: use the right maketrans on Python 2 + 3
Open text files in text mode

The implicit decoding of UTF-8 should be fine for FASTA files, and this allows
using string literals everywhere instead of bytes literals (which aren't
available in Python 2.5).
fasta.py: fix doctest for hash randomization

Python 2.7 adds an option to randomize hash seeds, and this is enabled by
default in 3.3. The natural ordering of a dict now changes every time the
interpreter is started, so don't depend on this in a doctest.

Explicitly sort the items of a dict in order to compare against expected
values.
fasta.Fasta: override items() method for Python 3

In Python 2, items() essentially loops over the keys() of the dict and adds
a (key, value) tuple to a list.

In Python 3, the items() method returns a view of the underlying dict's data
and isn't affected by the overridden keys(), iterkeys() and __getitem__.

This can probably be removed in the future by subclassing
collections.abc.Mapping instead of dict, but this requires Python 2.6+.
NpyFastaRecord: decode characters from bytes when appropriate