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 
I can't remember now why we didn't just make `PartRequest#params` a `Map[String, Seq[String]]` and did this `Seq[PartRequestParam]` thing which essentially does the same thing (and in fact, we tried to emulate a map with the `Set`. 

I seem to recall it being something that didn't play well with Scalatra-swagger or Swagger-codegen, but both of these are now a thing of the past as far as I can tell.

I think it would make a lot of sense to revisit this possibility of using `Map[String, Seq[String]]` for params again. All these types are just boilerplate and add performance and cognitive overhead.