Provide source port as part of the request

This might be a naive implementation. For example, I couldn't figure out how to mirror the `source(request)` behavior in the "hello world" example (e.g. how do I allow for `source_port(request)` instead of only `request.source_port`?).

Also, it appears that `destination` is not symmetric to `source`. I expected to see an IP in `request::destination`, but I saw the URL path instead. Thus, I did not add a `destination_port` member.