Add "GRN_TOKENIZER_TOKEN_FORCE_PREFIX"

It's useful in tokenizer plugin
Use grn_bool for boolean return value context
select: fix a memory leak on drilldown ShortText value with --filter
select: extract code for drilldown
select: ensure freeing keys for drilldown
select: remove duplicated NULL check
Indent
Hide grn_select()

Because nobody can't use the many arguments function.
plugin: export grn_plugin_proc_get_vars()
grn_table_create_for_group: use ShortText for not one key case
grn_obj_get_value: return the first sub record ID for group result table

Because group result table's range is sub record. It's natural that
_value pseudo column returns sub record ID.

It may be better that we add _subrecs pseudo column.
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.
Use "..." for ensure including header files in sub directory
Fix the example path
Merge pull request #244 from naoa/add-token-force-prefix

Add "GRN_TOKENIZER_TOKEN_FORCE_PREFIX"
Use grn_bool for boolean variable
Break a long line
Rename grn_token_status to grn_token_cursor_status

Because it's status of grn_token_cursor not grn_token.
Rename grn_tokenizer_status to grn_token_status

Because it's status of grn_token not grn_tokenizer.

grn_tokenizer_status still available but it's deprecated.
Extract grn_token declarations