asyncio: Replace "unittest.mock" with "mock" in unit tests

Use "from unittest import mock". It should simplify my work to merge new tests
in Trollius, because Trollius uses "mock" backport for Python 2.
asyncio: Fix pyflakes warnings: remove unused variables and imports
asyncio: simplify test_events.py, don't use non local variables and don't call
assert methods in coroutines.

It also simplify merges from Tulip to Trollius (Python 2 does not support non
local variables).
Issue #20759: Fix some typos in the mock docs.
Close #20759: Fix some typos in the mock docs. (Merge with 3.3)
asyncio/windows_events.py: use more revelant names to overlapped callbacks

For example: "finish_recv", not just "finish".
Fix several C-API doc typos caught by tomo cocoa on docs@.

The signature and description of PyException_SetCause now use "cause"
rather than "ctx" to match the code.
Merge with 3.3