Implement streaming, and other great stuff

- Promises that actually make sense: request.finished,
  request.served, response.finished
- Body streaming using request/response.finished.progress
- Proper message serializer