[Fixes #888] Revive BadRequest()

1. Added an HttpBadRequest() method on Controller.
2. Added an HttpBadRequestResult class that extends HttpStatusCodeResult
   and sets the status code to 400 following the similar pattern we do in
   HttpNotFoundResult.
3. Added a sample in MvcSample.Web and unit tests.
This is a confusing example.

Make it do something based on real data, name it realistically etc.

e.g.

```c#
public IActionResult FailIfMissingHeader()
{
    /// get header data
    /// if found return as string/json
    /// if not return badrequest
}
```