Alter UTF-8 sequences for surrogates on Python 2.

This ensures that text will decode the same in our `bad_codecs` decoders
on Python 2 and Python 3. Fixes #21.
Simplify the regex-building expression

We don't need to be that paranoid about backslashes when we're just
expressing ASCII as a range.

Also, add an explanatory comment.
package as v3.1.3