! http(x): support content negotiation, fixes #167
= 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
= 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
Merge pull request #383 from matsluni/blog_rpi

Blogpost for spray.io on the Raspberry Pi
= routing: Validate callback parameter of JSONP requests, fixes #308
= http: small cleanup and unification of q=0.0 handling
Merge pull request #384 from 2beaucoup/ticket/167

! http(x): support content negotiation, fixes #167
! 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.