web: clean up abstractions and dependencies around Response and response types