Strengthen the types on {Request,Response}.Writer

Rather than taking a Cstruct.t -> Cstruct.t marshalling function,
this is supplied as a functor argument.

Signed-off-by: David Scott <dave.scott@citrix.com>