Response code auto set to 204 after being previously set to 200 with undefined or null body.
Koa version 2.12.0

Running this snippet and sending a request will return a 204 response code despite the status code being explicitly set to 200, it does return a 200 if you reverse the two lines:
```
const koa = require('koa');
const app = new koa();
app.use(ctx => {
  ctx.status = 200;
  ctx.body = undefined;
});
app.listen(3000);
```

This contradicts the [documentation](https://github.com/koajs/koa/blob/master/docs/api/response.md#responsebody-1) and I believe it is caused by not checking for `_explicitStatus` on [this](https://github.com/koajs/koa/blob/faeaff5c149a81a188ab8e5af0b994029e45acbb/lib/response.js#L140) line.

I'm happy to fix the issue by adding the check there, I just want to confirm this is un-intended behavior or if its a mistake in the documentation.  As far as I can tell the HTTP spec doesn't specifically mandate that a body be included on a 200 response, only that a 204 MUST NOT include a message-body.