Use a struct for arguments and nested map for categories
Summary:
Instead of a single map with the category and name as the key,
make m_available_args contain maps. The key will be the category and
the value is a map which actually contains the arguments for that
category. The nested map's key is the argument name, while the value
is a struct that contains the help text and whether the argument is
a debug only argument.
This is a partial backport of Core PR13112 : https://github.com/bitcoin/bitcoin/pull/13112/commits/174f7c80801383cde5ea514b19fb8b108b56b31c
The hidden parameter cathegory has been added because it doesn't build without it - this also the case in the original PR.
Test Plan:
make check ./test/functional/test_runner.py --extended
Reviewers: #bitcoin_abc, Fabien
Reviewed By: #bitcoin_abc, Fabien
Differential Revision: https://reviews.bitcoinabc.org/D3712