Current QMP's client argument checker implementation is more complex than it should be and has a flaw: it ignores unknown arguments.
This series solves both problems by introducing a new, simple and ultra-poweful argument checker. This wasn't trivial to get right due to the number of errors combinations, so review is very appreciated.