Refactor requiring the client to ack requests

This refactored version checks the rqid as part of the decision
data, rather than introducing a new /ackrequest command. This
change is done in a backward-compatible way.

Most of the code does not change compared to the previous version.

The corresponding client commit is Zarel/Pokemon-Showdown-Client@3b82cf5cecac1ae3565f615f25699232d2307b96