[bitcoin/bitcoin] Refactoring CRPCCommand with enum category (#13945)

Thanks for the update @isghe!

I am leaning towards NACK because it seems that what it is you want to lay the foundation for can also be achieved without `rpccategory`.

Per your motivation:
> I am doing this, in preparation to add attributes, likes visibility and state to CRPCCommand structure, to avoid using category names, for overridden informations like visibility or deprecation.

Let’s say you want to add that visibility / deprecated flag:

«`c++
class CRPCCommand
{
public:
const std::string category;
const std::string name;
const bool visibility;


};
«`

«`c++
static const CRPCCommand vRPCCommands[] =
{ // category name visible / deprecated … etc …
// ——————— ———————— ———————— ———-
/* Overall control/query calls */
{ «control», «help», true, …},
{ «control», «stop», true, …},
{ «control», «uptime», true, …},
{ «control», «foo», false, …}
};

«`

Am I missing something obvious why we need `rpccategory` in this case?

If we do need `rpccategory` I am happy to review again; I am not against the idea perse.