select: support multiple drilldowns

It's experimental feature.

Here is the syntax:

    select \
      --drilldown[LABEL1].keys '...' \
      --drilldown[LABEL1].sortby '...' \
      --drilldown[LABEL1].output_columns '...' \
      --drilldown[LABEL1].offset '...' \
      --drilldown[LABEL1].limit '...' \
      --drilldown[LABEL2].keys '...' \
      --drilldown[LABEL2].sortby '...' \
      --drilldown[LABEL2].output_columns '...' \
      --drilldown[LABEL2].offset '...' \
      --drilldown[LABEL2].limit '...' \
      ...

Return format:

    [
      GENERAL_HEADER,
      [
        [N_HITS]
        COLUMNS,
        RECORD1,
        RECORD2,
        ...
      ],
      {
        "LABEL1": [
          [N_HITS],
          COLUMNS,
          RECORD1,
          RECORD2,
          ...
        ],
        "LABEL2": [
          [N_HITS],
          COLUMNS,
          RECORD1,
          RECORD2,
          ...
        ],
        ...
      }
    ]

The new syntax supports multiple drilldown keys.

    --drilldown[LABEL1].keys COLUMN1,COLUMN2

drilldowns by combination of COLUMN1 and COLUMN2. You can't get each
value by the default output columns:

    --drilldown[LABEL1].output_columns _key,_nsubrecs

Because _key is a ShortText value created by combining COLUMN1 and
COLUMN2 values. You need to use the following output columns to get
COLUMN1 and COLUMN2 values because you can access the first drilldowned
sub record by _value:

    --drilldown[LABEL1].output_columns _value.COLUMN1,_value.COLUMN2,_nsubrecs

TODO:

  * Document me.