Dynamic model creation and validation

### Implemented features

* Validates the correctness of the api-docs and resources against swagger spec 1.2
* Generates `setattr` (tab complete in Ipyton) on the client for available resources
* Generates `setattr` on each resource for available operations
* Each operation can be called using `operation()` with attributes as its params
* Validates the correctness of each model spec given in the resources
* Generates a namedtuple `models` for each resource which map a dynamic class to each swagger model
* The API response (if status is 2XX) is validated against swagger expected response type
* If API response is valid, it is converted from json response to Python instances of models. The user can then deal with Python model instances instead of JSON responses.
* An instance of `model` from namedtuple `models` can be instantiated and compared with API response `model`
* Docstring integration for `resources`, `operations` and `models` to tell about the attributes and types

### Future features

* If an API takes an object in the body (like in a POST), API can be passed a Python model instance as the body parameter and `swagger-py` will convert the instance to proper json to send it to the request. Hence, the user can avoid dealing with json dicts and instead deal with Python objects.
I'm on the fence as to whether it's clearer just to say 'array' here.

(When I saw 'container_types()', I thought "oh, like arrays and other things?  But what other things?  I'd better go and find out.  And why a function call?  Is there a side effect somewhere?!")