+ http: add some more sugar for convenient URI transformation, fixes #514
+ httpx: allow custom Content-Disposition headers
! http: make multipart form-data more flexible but have it adhere to the RFC more strictly
merge with master

Conflicts:
	examples/spray-can/simple-http-server/src/main/scala/spray/examples/FileUploadHandler.scala
	spray-httpx/src/main/scala/spray/httpx/unmarshalling/MultipartUnmarshallers.scala
	spray-httpx/src/test/scala/spray/httpx/unmarshalling/FormDataUnmarshallersSpec.scala
! http(x): rename BodyPart.getName -> BodyPart.name, add BodyPart.dispositionParameterValue
+ httpx: add possibility to create a non-strict FormDataUnmarshaller
+ http: add simple access to BodyPart.filename / disposition
Merge pull request #536 from jrudolph/w/finish-pr-486

Completion of PR 486
+ can: add Http.Unbind timeout parameter for the time before the listener (+ child connections) are shut down, fixes #397
Merge pull request #537 from jrudolph/i/397/unbind-timeout

+ can: add `Http.Unbind` timeout parameter for the time before the listener (+ child connections) are shut down, fixes #397
! http: introduce a distinction between "?key=" and "?key" in queries, fixes #460

The breaking change is that a parse/render round-trip will reproduce a
trailing '=' if the value is empty as well as no trailing '=' if it was
originally missing.

Also, the default behavior was changed so that '=' is always rendered even
for empty values unless you use the special value `Query.EmptyValue`.
+ http: include effectivePort method on Uri
= http: parse empty `Accept-Encoding` header as "identity" encoding as mandated by the spec, fixes #534
Merge pull request #520 from ivantopo/issues/514

+ http: add some more sugar for convenient URI transformation, fixes #514
Merge pull request #540 from jrudolph/i/534/parse-empty-Accept-Encoding

= http: parse empty `Accept-Encoding` header as "identity" encoding as mandated by the spec, fixes #534
Merge pull request #461 from jrudolph/i/460/fix-query-rendering

! http: always render '=' in query parameters, fixes #460
! routing: AuthenticationFailedRejection now directly contains challenge headers to return, fixes #538

This has two consequences:
  * it's easier to implement a custom authenticators which can now
    supply the challenge headers directly instead of needing a detour
    through HttpAuthenticator.getChallengeHeaders
  * AuthenticationFailedRejection is now serializable
Merge pull request #541 from jrudolph/i/538/better-AuthenticationFailedRejection

! routing: AuthenticationFailedRejection now directly contains challenge headers to return, fixes #538
= routing: fix broken test
= io: fix TcpConnection not handling intermediate empty writes in compound writes correctly