use singleton for requests session

instead of instance-level, so that in multiproc code, subprocesses actually
have own session and can reuse it