In Python 3, use str instead of bytes.

This comes with some overhead due to str being unicode.
Starting with Python 3.3, which implements PEP 393 (Flexible String
Representation), there's at least no memory overhead.
use cutadapt.__version__ for doc version
Use fast char pointers instead of str objects.

This speeds up the alignment algorithm, when run under Python 3,
to Python 2 speed.
Merge branch 'bytes-to-str'.

Much cleaner code and Python 3 performance suffers only by a few percent due
to switching to unicode.
restore Python 2.6 compatibility
docs