Make `Response` have a friendlier interface

This makes the `Response` interface friendlier, primarily for use
in tests. This demeters the `Response.status` message so it doesn't
have to be accessed through `status.message`. This also adds
writers for code and message which makes them consistent with data
and is helpful when testing responses. Specifically, `AndSon`
wants to be able to configure protocol responses and its convenient
to provide a default response and allow its code, message and data
to be altered.

@kellyredding - Ready for review. This is for https://github.com/redding/and-son/issues/30 and also to fix some usability suckiness with responses. Particularly the `status.message` thing. This is backwards compatible everything will work as-is and we can update at our leisure.