3021: Refactor run_test_server.
* Always start API server with both https:// and wss:// enabled. Use
mocks to test the websocket-not-available case.
* Leave the API server running between tests; just hit reset() when
needed. Wait until exiting the process to stop the server.
* Do not use rake (tmp:cache:clear, db:test:load, db:fixtures:load) to
reset the API server's database before starting up a new
server. Instead, call /database/reset after starting it. (If that
doesn't work, crash instead of proceeding with undefined results.)
* If a parent process has already started an API server and put its
endpoint in ARVADOS_TEST_API_HOST, use that instead of starting a
new one, and leave it running at exit.
* Start servers on random port numbers, so [some] test suites can run
concurrently with others on a single host (assuming they're
configured to use different databases).