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 reason why we iterated of registeredParams vs combinedParams was because it would save us from having to look at (possibly many) garbage/unneeded params (in the case of say, a client malfunction/bug).

If PartRequest#params was a `Map[String, Seq[String]]`, this entire method would be much faster/simpler/shorter :)