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.
They don't use any of the state of the class for now but I can see them using it in the future. Also, they are marked as private and they now have a namespace which makes more sense for them to live in. Having them be pure functions is nice and all but hiding them in this namespace is better. Also should improve being able to mock and test things as well.