### What happened?

I'm sorry I didn't weigh in on #11277 before it was merged. I'm thinking of this specifically for how to get this properly consumed by the bindings as per #11443 

2 things to bring the grid code more in line with other endpoints.
1. Use POST if there is info to send to an endpoint instead of query string
2. Return payload needs to be nested inside a `value` key.

Current implementation of file endpoint is:
```
POST /session/:sessionId:/se/file
file: <zippedFile>
```

To minimize confusion, I think the new feature should use `files` instead of `file`:
```
POST /session/:sessionId:/se/files
{fileName: <filename>}
```
and for #11458 
```
GET /session/:sessionId:/se/files
```

### How can we reproduce the issue?

```shell
n/a
```


### Relevant log output

```shell
n/a
```


### Operating System

n/a

### Selenium version

trunk

### What are the browser(s) and version(s) where you see this issue?

n/a

### What are the browser driver(s) and version(s) where you see this issue?

n/a

### Are you using Selenium Grid?

trunk
return String.format("%s (revision %s)", INFO.getReleaseLabel(), INFO.getBuildRevision());
  }
  public ImmutableMap<String, String> getOsInfo() {
    return OS_INFO;
  }
  public abstract Either<WebDriverException, CreateSessionResponse> newSession(CreateSessionRequest sessionRequest);
  public abstract HttpResponse executeWebDriverCommand(HttpRequest req);
  public abstract Session getSession(SessionId id) throws NoSuchSessionException;
  public TemporaryFilesystem getTemporaryFilesystem(SessionId id) throws IOException {
    throw new UnsupportedOperationException();
  }
  public abstract HttpResponse uploadFile(HttpRequest req, SessionId id);
  public abstract HttpResponse downloadFile(HttpRequest req, SessionId id);
  public abstract void stop(SessionId id) throws NoSuchSessionException;
  public abstract boolean isSessionOwner(SessionId id);
  public abstract boolean isSupporting(Capabilities capabilities);
  public abstract NodeStatus getStatus();
  public abstract HealthCheck getHealthCheck();
  public boolean isDraining() { return draining; }
  public abstract void drain();
  @Override
  public boolean matches(HttpRequest req) {
    return routes.matches(req);
  }
  @Override
  public HttpResponse execute(HttpRequest req) {
    return routes.execute(req);
  }
}