fix: Switch to unittest.mock from mock (#713)

* test: Switch to unittest.mock from mock

Now that the minimum supported version of Python is 3.7, we can stop
using the external mock requirement, and import it from unittest. I have
also attempted to keep imports ordered.

Fixes #377

* test: Fallback to external mock for AsyncMock

AsyncMock is not included in unittest.mock under Python 3.7, so we must
fallback to the external mock requirement for that Python version. Only
install it for that version.

Keep this as a separate commit so it can be reverted when 3.7 isn't
supported anymore.

* lint

* clean up to satisfy mypy

* lint

* fix build

---------

Co-authored-by: Anthonios Partheniou <partheniou@google.com>
25 files changed