Create factory method to get SwaggerClient which has the caching functionality

* Expose `client.get_swagger_client(...)` factory method which has the caching functionality

```
LOB sdist-make: /nail/home/prateek/pg/swagger-py/setup.py
py26 runtests: commands[0] | nosetests

....................................................................................................
----------------------------------------------------------------------
Ran 100 tests in 0.823s

OK
py27 inst-nodeps: /nail/home/prateek/pg/swagger-py/.tox/dist/swaggerpy-0.3.0.zip
py27 runtests: commands[0] | nosetests
....................................................................................................
----------------------------------------------------------------------
Ran 100 tests in 0.849s

OK
flake8 inst-nodeps: /nail/home/prateek/pg/swagger-py/.tox/dist/swaggerpy-0.3.0.zip
flake8 runtests: commands[0] | flake8 swaggerpy
flake8 runtests: commands[1] | flake8 swaggerpy_test
______________________________________________________________ summary ______________________________________________________________
  py26: commands succeeded
  py27: commands succeeded
  flake8: commands succeeded
  congratulations :)
```
My thinking was that using this limited global state would allow different call sites to automatically share the same client without having to thread state around, which probably works out being cleaner?