Add request cancel feature (experimental)

You can cancel a request by this feature with the following steps:

  1. Add "request_id" parameter to your request. For example:

     * "select Table --query 'body:@keyword' --request_id ID"
     * "/d/select?table=Table&query=body:@keyword&request_id=ID"

     Note that the "request_id" value should be unique in concurrent
     requests.

  2. Call "request_cancel" command with the request ID. For example:

     * "request_cancel ID"
     * "/d/request_cancel?id=ID"

  3. "request_cancel" returns the following body:

         {
           "id": "ID",
           "canceled": true
         }

      * Note that the request ID doesn't exist, "canceled" value is false.
      * You can call "request_cancel" multiple times with the same
        request ID.

  4. Request that is specified by the request ID will be canceled. The
     response has -5 (GRN_INTERRUPTED_FUNCTION_CALL) as status code.

TODO:

  * Document me.
  * Test me.