speedy: convert to use subgroups, other misc. changes

In hindsight, this should have been done in several "atomic" commits, but
so much for that idea!

Changes include:
- removing calls to prompt() when CSD-tagging an article and replacing them
  with subgroups, similarly to the tag module in 7acac36968087168ab6c4eb5b823381b6887b8ae
  (based on feedback on WT:TW and inspired by Siddhartha Ghai's work)
- overhauling the means by which the list of criteria is prepared. This
  makes it more flexible, to suit the variety of "modes" in which it can
  exist (e.g. checkboxes/radio buttons), and also future-proofs it against
  future changes
- changing the getParameters function to validate the subgroup inputs
  instead of displaying prompt dialogs
- various updates to the logic of the parameter inputs (e.g. several that
  were optional are now mandatory, to match the behavior of the associated
  db- template)
- removal of speedyPromptOnG7 pref - now unnecessary
- simplification of G13 API query added in 34fa87340b9e4ae37927d38be7e4d201ee94ac3a

It has been tested in various scenarios. Fingers crossed that it works in
*every* scenario!