support for multiple parameter values

changes:
- disallow null for parameter values (Play JSON deserializer will enforce this behavior, unlike json4s).
- collapse sending multiple cookies in a single header (RFC 6265)
- send multiple parameter values to the backend
  - query : `a=1&a=2`
  - cookie : `a=1; a=2`
  - header : duplicates, `a: 1` and `a: 2`
  - path, body : not supported
  - warts :
    - Order is kept when sending to the backend, but does not influence the cache key
    - Parameter versioning only consider the first value
- Normal parameters do not override meta parameters anymore (they cannot, nor should they ever)
- Java client : use a Seq.builder instead of a var.

fixes #20 
> The Codegen is supposed to be working (and maintained).

Right but in our experience, the code generated is so bad that we might as well not use it. Which we don't seeing as how the Java and Scala clients are written by hand. As a result, if Codegen usage is the only thing stopping us from using Maps in our models, then we should just use Maps.

> Options work (with annotations), Enums too (with a list of allowed values), and durations are properly represented as their millisecond value.

I meant on Swagger-ui, the models are pretty much completely broken :laughing:  : http://octoparts.herokuapp.com/swagger-ui