Add a test, change a signature. Move client syntax from dsl to client package.

The client `on` function cannot be changed to `onStatus` without interfering with the currently in place `onStatus` which takes a partial function. This may be on the way out in a few commits anyway.
Refactor client syntax

Request on syntax now take the form of
* Request.on(Status).as[String]
* Request.as[String] // shorthand for Request.on(Ok).as[String]

The Result type was removed in favor of `.as[(Headers, T)]`