MOTOR-40 Frameworks' resolve() returns a 5-tuple.

Standardize on socket.getaddrinfo's return type:
family, socktype, proto, canonname, sockaddr.
Import style.
Whole test suite can run with SSL enabled, not just test_motor_ssl.
More robust test_copy_db_auth.
fixup ssl
MOTOR-40 MotorSocket is responsible for name resolution, other refactorings.

To support SSL in asyncio we can't use raw sockets, we must use a Protocol / Transport pair.
In preparation, TornadoMotorSocket and (soon) AsyncIOMotorSocket will do their own name
resolution. While we're at it, package socket options into a class, and refactor
TornadoMotorSocket to take advantage of Tornado 4's coroutine-friendly IOStream methods
when available.
Fix timeouts with Tornado.

"_Wait._exception" conflicts with the base-class attribute, use "_Wait._timeout_exception" instead.
Use timedeltas instead of numbers.
Remove host, port, io_loop from MotorSocketOptions, add "address".

Greater consistency between MotorSocketOptions and upcoming PyMongo 3 options.
fix
Docstring typo.
Make AsyncioMotorSocket a Protocol.

Lets me use asyncio's create_connection, especially its SSL features,
instead of building it myself from raw asyncio socket methods.
AsyncIO SSL tests.
Skip asyncio test_authenticate if server isn't running with auth.
Fix Motor's TestReplicaSetClientAgainstStandalone.
Fix hostname verification with Tornado.
Obsolete method fileno().
asyncio ssl test fix
Test certificate-error message with Tornado.