Release 5.0

This is a tracking issue for release 5.0.

I am trying to give better visibility for upcoming changes and so am trying out making a PR for a release here, pulling from the official next release branch into 4.x. This allows for the current pending changes to be easily visible.

**Please keep feature requests in their own issues**

I'm also leaving this PR unlocked so people can make comments/etc. and we'll see how it goes :) If you want to make a comment on a particular change, please make the comment in the "Files changed" tab so comments are not lost during a rebase (they will occur frequently has 4.x progresses).

List of changes for release:
- [x] Bring back `app.router` which is just generally useful for directly calling to the router
- [x] Make `req.host` actually return the host #2179
- [x] Make `req.query` a getter instead of added by middleware #2215

List of deprecated things removed:
- [x] `res.json(obj, status)`
- [x] `res.jsonp(obj, status)`
- [x] `res.send(body, status)`

Owners/collaborators: please do not merge this PR :)