2800: Introduce config.flag_is_true() to Python SDK.
2800: Improve spec conformance of Python SDK KeepLocator.

* Require size to immediately follow digest.
* Accept all valid hints.
2800: Remove global state from KeepClient.

This commit makes it possible to build and use a KeepClient that isn't
influenced by changes in outside state.  Changing the KeepClient based
on global state has been pushed up to the simple Keep class.

This commit changes the tests as little as possible to demonstrate
backward compatibility.  Refactoring the tests to build KeepClients
directly will come in the future.
2800: Migrate from Keep to KeepClient in the Python SDK.
2800: Use dedicated logger in Python SDK api module.
2800: Make run_test_server put Keep tempfiles in tests/tmp/.
2800: Introduce TestCaseWithServers to Python SDK.

This is a subclass of unittest.TestCase.  It looks for specific class
variables to launch supporting Arvados servers for subclass test
cases, taking care to adjust the environment and local Arvados
configuration to match.  Put another away, this refactors a number of
similar setUpClass/tearDownClass methods throughout the SDK tests.
2800: Use local KeepClients in Python SDK tests.

This improves test isolation, and demonstrates the preferred way to
use the API.
Merge branch '2800-pysdk-no-global-keep-client-wip'

Closes #2800, #3639.