Restarting a server instance to change the interserver password results
in many replicas being out of sync until all clusters are using the new
credential.
This commit adds dynamic credential loading for both the client
(Replicated* tables) and server (InterserverIOHTTPHandler).
This commit also adds the ability to rotate credentials, i.e. accept more
than one credential during a credential change.
state0 (no auth):
<interserver_http_credentials />
state1 (auth+allow_empty migration):
<interserver_http_credentials>
<user>admin</user>
<password>222</password>
<allow_empty>true</allow_empty>
</interserver_http_credentials>
state2 (auth+new admin password migration):
<interserver_http_credentials>
<user>admin</user>
<password>333</password>
<users>
<admin>222</admin>
</users>
</interserver_http_credentials>
This PR formats all the `*.py` files found under the `tests/integration`
folder. It also reorders the imports and cleans up a bunch of unused
imports.
The formatting also takes care of other things like wrapping lines and
fixing spaces and indents such that the tests look more readable.