upgrade to sbt 0.12.2
sbt: add spray-io-tests and spray-can-tests project
utils: small extensions
io: upgrade to new akka.io.Tcp transport, split out tests into independent project
http & httpx: simplify Ack support for HttpMessageParts
can: upgrade to new spray.io and akka.io.Tcp transport, split out tests into independent project
examples: upgrade simple-http-server example
Scalatest: BeforeAndAfterAll can be stacked

When using scalatest and spray-testkit, there may be multiple traits implementing BeforeAndAfterAll in a test.
To ensure that all of them are called, ScalatestInterface should call the super implementation. 
Remove outdated comment about by call-by-name route.
http: add new RFC3986-compliant URI model
http: upgrade query of new Uri to Map-based model
http, io, servlet: make "compile-time constants" compile-time constants
http: upgrade HttpRequest model to new Uri
http: small cleanup in error model
http: introduce dedicated model for Uri.Query, now also support multiple values for a key
io: smaller fixes to akka.io TCP implementation
http: add header models for `Server`, `Transfer-Encoding` and `User-Agent` headers
http: add `withEffectiveUri` member to HttpRequest, improve error model
httpx: upgrade to latest spray-http
can: complete new client-side infrastructure, upgrade to latest spray-http, more tests