Fixes stdout --sql output in python2

When output_encoding is set, wraps the output buffer into a io.TextIOWrapper class
This means that the output_buffer has to be a io.IOBase instance
in order to work along with the TextIOWrapper

Handles wrapping when the buffer is Python2 stdtout, which has 'file' type
Adds test for this situation
Change filename length restriction to 60 characters & word truncation

Example of a longer filename:
- 3e12cdb9209d_alter_user_table_telephone_and_mobile_columns.py

Example of a filename that has been truncated:
- 12894284029g_create_partial_index_for_article_telephone_column_and_.py
Fixed the output wrapping for Alembic message output, so that
we either get the terminal width for "pretty printing" with
indentation, or if not we just output the text as is; in any
case the text won't be wrapped too short. #135
Fixes to Py3k in-place compatibity regarding output encoding and related;
the use of the new io.* package introduced some incompatibilities on Py2k.
These should be resolved, due to the introduction of new adapter types
for translating from io.* to Py2k file types, StringIO types.
Thanks to Javier Santacruz for help with this.
Merge branch 'fix_python2_sql_output'

Conflicts:
	docs/build/changelog.rst
Merged in Frozenball/alembic/longer-filenames (pull request #12)

Change filename length restriction to 60 characters & word truncation
- changelog
- use newer changelog pullreq format
- make slug length default to 40, but also make it configurable.
cleanup
- rework mysql tests to have suites
- add a test to verify pullreq #5 - check if a TIMESTAMP column with
CURRENT_TIMESTAMP as default successfully compares for equality/inequality.
test passes without the pullreq, so no failure case has been demonstrated.
- Fixed bug where :func:`.op.alter_column` in the MySQL dialect
would fail to apply quotes to column names that had mixed casing
or spaces. #152
- 0.6.1 release
- add wheel format
adjust for latest ENUM formatting
Merged zzzeek/alembic into master