WIP: simplify the logic and expand to more encodings
WIP: simplifying the re-encoding step
WIP on version 3
Big refactor

- Individual fixes are in fixes.py. (Now we can give options nice names
  without conflicting with the functions that implement them.)
- Top-level functions revised to take new options.
- fix_text is idempotent.
- "Weirdness" is now determined using general Unicode properties,
  instead of a mapping of expected and unexpected scripts. This
  should be faster and more general.
- It is considered slightly weird to create modifier characters that
  weren't there before.
Clarify error text
Remove single-character weirdness measure

(It doesn't fit into what ftfy currently does.)
bump version to 3.0b for upcoming version 3
preserve options from fix_text in fix_text_segment
python 3 fixes
Remove debug code
remove debugging output
fix_text_encoding should decode repeatedly

(The new idempotence code is not sufficient, because one of the
intermediate characters might be a curly quotation mark or something.)
added fix_surrogate_encoding fixer

This allows the last test in test_real_tweets to pass, and not
just by coincidence on narrow Python builds.
test that we can decode all doubly-encoded characters (doesn't pass yet)
Don't reinterpret latin-1 as windows-1252 when it breaks
Unexpected capital letters are only weird when they're not ASCII.

CamelCase exists, after all.
Keep decoding, even if the first decoding looks worse.

Additional changes:
- Refined the sequence_weirdness metric.
- Added more inline documentation.
Convert lone CR to LF - fixes #5
more tricky real-world test cases
Add some more test tweets, some of which reveal bugs