Convert query params to multi dict instead of comma separated values

* Allow only primitive types for query parameters. That means `type: array` is not allowed for query params.
* Allow both foo='x' or foo=['x','y'] for query params if `type: string` is provided. This will be converted to params: {'foo': ['x','y']} which will be handled as `foo=x&foo=y` by requests and async client (tests are present for requests and manually tested for async client).

* `path` params will remain the same. That means foo=['x','y'] will be allowed if type is `array` and will be converted to comma separated. That means this will still work : `foo/{foo}/..` to `foo/x,y/...`