Python3 enhancements from mysqlclient-python + nonblocking

This is an initial attempt to merge the two projects. I haven't even run the tests yet. 

But would like to gauge interest before I spend more time getting this to work. 
mysqlclient-python has waiter support, but it seems nonblocking is supported down in C, where as waiter requires no such support (as far as I can tell). I tried to keep them both