Fixer for E12* errors based on initial indent fixes

New continuation line errors were added to pep8.py; here is a first
attempt to fix them.  A new class, Wrapper, is added which will later
have alternate strategies for resolving indention situations.  It has
a magic function which "knows" what pep8.py's E12 checker will accept,
by duplicating its tokenizing loop and emitting allowable indentation
offsets for each line.

Naturally, E12 errors are related to long line errors; for instance,
indenting a line to the requested level will often push the line past
the right margin, tripping E501.  Especially when visual indenting is
being used.  The forward plan is to refactor the newly added
_shorten_line() into Wrapper, and to add further line folding
strategies (such as "prefer hanging indent", useful for long lines
with parenthesized parts).  This should allow for attempting multiple
strategies for folding a line, with the "best" one selected
Expand lines before trying to split them

If there is a line which gets longer due to added whitespace, if the
e501 fixer first splits the line then it might end up too long after
the other fixers run.
Make compatible with Python 3
Fix unpack error
Fix AttributeError
Fix PEP 8 errors
Fix clobbering of token
Fix pylint errors
Thanks
Handle IndentationError gracefully
Format
Add case that breaks build_tokens_logical()
Run E12 fixes independently from other fixes

Otherwise we get an error in build_tokens_logical() due to the source
code being modified by other fixes.
Update with new E12 fixer
When wrapping, do not start line with comma
Show more of E12
Add a newline to make diff more readable
Add todo item for E123
Pass in hard_wrap (even though it isn't used yet)
Print --in-place and --diff are mutually exclusive