= io: port over changes from upstream akka-io (as of EOB 2013-08-27), closes #472
Merge pull request #492 from spray/ticket/472

= io: port over changes from upstream akka-io (as of EOB 2013-08-27)
= http: fix Location header parsing to accept relative URIs, closes #484
= httpx: fix test instability in EncodingDirectivesSpec
+ httpx: change default StringMarshaller to prefer UTF-8 encoding over ISO-8859-1, closes #498

So far the built-in StringMarshaller always used the ISO-8859-1 charset (the HTTP default charset). However, nowadays UTF-8 is the better choice. With this patch the StringMarshaller now renders w/ UTF-8 if the client accepts it, otherwise it will use whatever charset the client prefers.

 This change happens to require changes in quite a bit of tests that implicitly relied on the previous behavior.
 Note that the default `HttpEntity(String)` constructor now also uses UTF-8 rather than ISO-8859-1 as before.
Merge pull request #499 from spray/ticket/498

+ httpx: change default StringMarshaller to prefer UTF-8 encoding
Merge pull request #495 from BalajiSi/balaji

= http: Fix Location header parsing to accept relative URIs
! io, can, util: Publish SSLSessionEstablished event from SslTlsSupport upon successful SSL handshaking
! can, http: Add SSLSessionInfo header to requests on server and responses on client
+ can: Add explicit suppression of Content-Type header

The NoContentType ContentType is ignored in response rendering.
The NoMediaType MediaType is encapsuled by NoContentType.
Merge pull request #493 from fsvehla/fsvehla_no_content_type_header

+ can: Add explicit suppression of Content-Type header
Merge pull request #487 from mpilquist/client-cert-access

! io, can, http: Provide information about the SSL session that an HttpMessage is received over
= httpx: optimize default FormDataMarshaller
+ httpx: change charset of default Content-Type in MultiPartUnmarshaller to UTF-8

Also makes specification of custom default charsets easy by adding `MultipartUnmarshallers.multipartContentUnmarshaller`.
= io: suppress logging of `event pipeline: dropped SSLSessionEstablished` message in SslTlsSupportSpec
! io: add support for compound write commands (Tcp.CompoundWrite)

Most of this addition only affects the non-public parts of akka-io, however, the `ack` and `wantsAck` methods that were so far defined on the `Tcp.WriteCommand` type have now been moved to the new `Tcp.CompactWriteCommand` type.
= http: add dependency on spray-util, remove duplication
+ http: extend Rendering with `~~%` operator for rendering hex ints and longs
! http: add small extensions to Uri model

Specifically:
- additional `charset` parameter on `Uri.Host.apply` and `Uri.Query.apply`
- new method: Uri.Query::toMap
! http: introduce `HttpData` model replacing the byte array in `HttpBody` and `MessageChunk`, closes #365

So far the HTTP model for message entities and chunks was based on "raw" byte arrays thereby violating the immutability "standard".
 With this change we introduce a dedicated model for HTTP binary data called `HttpData`, which also adds support for file-based (off-memory) data.

 We use the opportunity of this breaking change to refactor the `HttpEntity` model.
 `EmptyEntity` and `HttpBody` are gone and replaced with `HttpEntity.Empty` and `HttpEntity.NonEmpty`.
 Additionally `MessageChunk::bodyAsString` is gone. Use `chunk.data.asString` instead.