Python 3 compat; Improve WSGI, WS, threading and tests

This includes:

* patching more tests to pass
* removing few unit tests which I think are redundant
* repeating SSL socket reads in a loop to read all data (I suspect this is
  related to the fact that writelines is used in the server code there and
  Python 3 writelines calls write/send repeatedly while on Python 2 it
  calls it once; on one hand there's no guarantee that single recv/read
  will return all data sent by the server, on the other hand it's quite
  suspicious that the number of required reads seems to be connected to
  the number of sends on the other side of the connection)
* working through Python 2/Python 3 threading and thread differences; the
  lock code I used is the simplest way I could make the tests pass but
  will likely need to be modified in order to match the original

This commit includes 6bcb1dc and closes GH #153
pep8: trivial fixes

Closes #161 (GH)
Give credits for 23beb7d
Update bundled six version to 1.8.0
Exclu
Exclude bundled mock and six from style checking
Improve PEP8 conformance
Restore removed tests and make Python 3 compatible

This restores tests removed in 23beb7d43e
pep8: Fix remaining issues
Travis: disallow PEP-8 failures from now on
Fix __str__ method on the TimeoutExpired exception class. Also fix argument
order in the class constructor so it uses the same order as the actual class
from Python 3.3 and above.

TimeoutExpired from Python 3.3 takes arguments in the following order:
cmd, timeout, output.

See https://github.com/python/cpython/blob/master/Lib/subprocess.py#L388
Python 3 compat: Improve WebSocket and tests
Fix string concatenation errors

Some error paths concatenate the output of "type" with a string,
which gives TypeError: cannot concatenate 'str' and 'type' objects,
rather than describing the actual error.

Closes #149 GH
Closes #150 GH

Conflicts:
	eventlet/hubs/twistedr.py
Travis: Slack.com integration
tpool: Windows compatibility, fix ResourceWarning. Thanks to Victor Stinner

https://github.com/eventlet/eventlet/pull/167
Signal socket bind to 127.0.0.1, '' does not work on Windows
sock.close() to fix ResourceWarning with python3 -Wd
Fix timers not cleaned up on MySQL test skips

If it's determined that a MySQL test should be skipped during setUp(),
but after the parent setUp() has been called, having created and
started a timer, then tearDown() is never called and the timer never
cancelled, but left to expire during some future, unrelated test.

Move call to parent setUp() to end of child setUp() to insure that the
timer is only created and started after it's been determined that the
test shouldn't be skipped (ie create_db()).
db_pool.BaseConnectionPool.clear updates .current_size #139
tests: db_pool: test .clear() updates .current_size GH-139
Fix monkey-patched os.open(): add dir_fd parameter

The os.open() function got a new option keyword-only dir_fd parameter in
Python 3.3:
https://docs.python.org/3/library/os.html#os.open

With this change, the open() now accepts the dir_fd parameter.
Fix monkey_patch() on Python 3

The importlib module must use real thread locks, not eventlet.Semaphore.