Introduce SwaggerClientFactory

`SwaggerClientFactory` instance maintains the state of all swagger
clients and their timeouts. `factory` is a global instance of
`SwaggerClientFactory`, which is instantiated by the public factory
method `get_client(..)` if it is None, else it is used again.

`SwaggerClientFactory()(..).client` can be used directly if global
module variable 'factory' is not desired.
Made the changes, and to tests to utilize it