= build: add CONTRIBUTING.md to show in github pull requests
= servlet: fix configuration loading
= servlet: check `settings` for null before using it
! httpx: move unmarshal and unmarshalUnsafe to Unmarshaller and add unmarshaller method

This fixes #373 by moving the `unmarshal` and `unmarshalUnsafe` methods from the spray.httpx package object to the Unmarshaller object. It also renames `unmarshal` to `unmarshaller` and adds an improved version of `unmarshal`that takes an `HttpEntity` as a parameter, making it consistent with `unmarshalUnsafe`

Added the necessary unit tests to `BasicUnmarshallers`.
Merge pull request #377 from agemooij/issue-373

Fix for Issue 373
Merge pull request #388 from cppexpert/master

spray-servlet always crashes on start because it cannot find config "spray.servlet"
! httpx: decode should remove Content-Encoding header from message

This fixes #316 by changing Decoder.decode to remove the Content-Encoding header.

I added extra round-trip unit tests to the DeflateSpec and GzipSpec but I also added some basic unit tests for the Encoder and Decoder abstract classes themselves.
Merge pull request #385 from agemooij/issue-316

Fix for #316: ! httpx: decode should remove Content-Encoding header from message
= docs: fix type on the magnet pattern post
= httpx: homogenize Decoder and Encoder header testing/filtering
! http(x): support content negotiation, fixes #167
= examples: fix compiler warning
= blog: add 'spray on the RPI' post
! http(x): polish MediaType model, fix tests, smaller improvements

http:
  - remove `isContentTypeAccepted` and `acceptedCharset` methods on `HttpMessage`
     (they are not required anymore by the new content negotiation logic)
  - add `withQValue` and `withParameters` modifier methods to `MediaRange`
  - add `qValue` parameter to `MediaRange.custom` and `MediaType.custom` constructors
  - add `spray.http.MultipartMediaType` type with an additional `withBoundary` modifier
  - improve custom multipart media-type creation
     (was, for example: new `multipart/mixed`("myBoundary")
     now it's: `multipart/mixed` withBoundary "myBoundary")
  - extend `spray.http.Rendering` with support for Floats and Doubles
  - fix failing tests

 httpx:
  - remove `tryAccept(ContentType)` overload on `MarshallingContext`
  - fix failing tests
= docs: improve CLA part of "Contributing" chapter
= http: small cleanup and unification of q=0.0 handling
! can: replace InetSocketAddress in HostConnectorSetup with hostname/port pair, fixes #394

Since two `InetSocketAddress` instances are equal if their hostnames resolve to the same IP/port (i.e. the address for "www.spray.io" and "spray.io" compare equal) the HTTP layer wasn't distinguishing properly between them.
This patch fixes this problem.
If you were relying on constructing an `HostConnectorSetup` with an `InetSocketAddress` you need to change your code to provide a host and port explicitly.
= http: fix deprecation compiler warning
! routing: Added `detach` directive which executes its inner route in a future. Removed `detachTo` directive. Fixes #240.

The `detachTo` directive was removed and replaced with `detach` which executes its inner route in a `Future` (as opposed to
executing it inside an actor). In order to migrate, users will have to replace their use of `detachTo`, which most commonly
was used with `singleRequestServiceActor`, with a parameterless call to detach (i.e. `detach()`) if they have either an
implicit `ExecutionContext` or `ActorRefFactory` in scope. Additionally, it is also possible to call detach with an explicit `ExecutionContext` (e.g. `detach(ec)`).
+ http: fix recent MediaType refactoring causing `*/*;q=?` mismatch, add tests

This change also add a `def withCharset(charset: HttpCharset): ContentType`
convenience method to `MediaType`.