= can: fix request parser not failing early on illegal requests w/o protocol, closes #363
+ http: add model for CORS headers
= can: update HttpHeaderParserSpec with latest additions to header model
= routing: improve scaladoc on `Rest` PathMatcher
Merge pull request #364 from spray/ticket/363

= can: fix request parser not failing early on illegal requests w/o protocol, closes #363
= can: fix bug in parsing responses with status line split across packets, fixes #369
Merge pull request #370 from spray/ticket/369

= can: fix bug in parsing responses with status line split across packets, fixes #369
+ http: allow empty `Host` headers

According to http://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-22#section-5.4 the Host header might be empty.
This message from Roy Fielding also suggest this:
http://lists.w3.org/Archives/Public/ietf-http-wg/2009AprJun/0705.html
! can, routing, servlet, util: improve *Settings infrastructure

All our Setting model classes follow the same pattern: apart from the default case class constructor we supply two `XxxSettings.apply` overloads:

1. `def apply(system: ActorSystem): XxxSettings`
2. `def apply(config: Config): XxxSettings`

The first one simply calls the second with the ActorSystem's config. However, so far it also selected the respective sub-config for the Settings, e.g. "spray.can.server" for the spray-can `ServerSettings`. The second overload therefore required the correct *sub-config* for the Settings rather than a root-level Config object. Internally it then applied a `withFallback(ConfigFactory.defaultReference(getClass.getClassLoader))` to this sub-config, which was ineffective since the defaultReference supplies a root-level config (we were mixing a root-level config into a sub-config).

This patch fixes this problem by moving sub-config selection from the first overload into the second. It also improves DRYness by factoring out common logic into a new superclass `SettingsCompanion` and adds another convenience `apply` overload for settings overrides given as a String.

Even though the public API in terms of method signatures is not changed by this patch the semantics of the parameter on the second overload change, thereby breaking all code that uses it.
= can: add check for "Host header present on HTTP/1.1 request" directly to request parser

 So far this check was performed by the higher-level effective request target establishment.
 Since we are going to modify and extend that logic with the following commits we add an
 explicit check in the lower-level request parser with this patch.
+ can, http: introduce `spray.can.server.default-host-header` setting, closes #348

We also add a second parameter to the `HttpRequest#withEffectiveUri` method. However, this change shouldn't break anything in most cases since this parameter has a default value.
Merge pull request #366 from spray/ticket/348

Several extensions/fixes, close #348
= sbt: Add OSGi metadata to non-test modules
= sbt: Make spray.json optional package import
= can: upgrade StatsSupport.StatsHolder to new PaddedAtomicLong
= sbt: upgrade dependencies
+ util: add PaddedAtomicLong
Merge pull request #374 from analytically/master

Add padding to StatsSupport.
= servlet: Provide the javax.servlet.http.HttpServletRequest in an HttpHeader
Merge pull request #329 from mpilquist/osgi

= Add OSGi metadata to non-test modules