## Meta
OS:  macOS
Selenium Version:  3.11, code indicates this should be in master still
Browser:  Chrome

## Expected Behavior
When visiting a page/servlet that does not exist in Grid, a 404 status code should be returned.

## Actual Behavior
A 200 status code is returned for pages that do not exist.

## Steps to reproduce
1) Launch a hub or node
2) Open your browser's network tab
3) Visit localhost:4444/thisdoesntexist

```
Request URL: http://localhost:4444/thisdoesntexist
Request Method: GET
Status Code: 200 OK
```

## More Information
It appears the design for any [non-registered routes](https://github.com/SeleniumHQ/selenium/blob/5457171bd52747eed2ab625607d29670448f4523/java/server/src/org/openqa/grid/selenium/GridLauncherV3.java#L270) to direct to `DisplayHelpServlet`, which [returns the 200](https://github.com/SeleniumHQ/selenium/blob/5457171bd52747eed2ab625607d29670448f4523/java/server/src/org/openqa/grid/web/servlet/DisplayHelpServlet.java#L122).

Considering I typed a page that should not exist, I feel it may be more obvious if a 404 is returned to indicate a problem.

Context: My application was requesting a custom servlet by the wrong name, and became confused when a 200 was returned but the proper action did not occur. A 404 would have very quickly jumped out as a route issue.
package org.openqa.testing;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Collection;
import java.util.Locale;
import javax.servlet.ServletOutputStream;
import javax.servlet.WriteListener;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;
public class FakeHttpServletResponse extends HeaderContainer
    implements HttpServletResponse {
  private final StringWriter stringWriter = new StringWriter();
  private final ServletOutputStream servletOutputStream =
      new StringServletOutputStream(stringWriter);
  private final PrintWriter printWriter = new PrintWriter(servletOutputStream);
  private int status = HttpServletResponse.SC_OK;
  public int getStatus() {
    return status;
  }
  public String getBody() {
    return stringWriter.toString();
  }
  @Override
  public Collection<String> getHeaders(String name) {
    return getHeaders().get(name);
  }
  @Override