For some rules, rule-specific metadata.json overridden the `sqKey` for
all languages, so when the predeployment script collected all keys, it
did not list the actual, most canonical key "S****".
This leads to the incorrect display of coverage information on a rule
page that relies on the `allKeys` precomputed property to retrieve the
version of the analyzer that implements the rule.
The fix includes the generic rule metadata.json file into the aggregator
that computes `allKeys`, thus propagating it to every language-specific
metadata.
* Generate description and metadata for rules with no language, so that they get indexed.
* Index rules with different types in language specializations.
* Improve validation to reject new rules with no language specialization (i.e. only a predefined set of such rules is allowed because they were imported from Jira and kept for historical purposes).
* Write smaller JSON files, reduce their size by 30%.
* Improve test coverage of CLI application.