SQL syntax to cancel executing query, phase 3

This change fixes some problems with subset DELETE and
UPDATE statements which prevented them from responding
to CANCEL. It addresses an identical potential issue in
SELECT statements with predicates that reject large
numbers of rows.

The change also allows an envvar, SQL_NO_REGISTER_CANCEL,
which if set to 1, prevents queries from registering with
the cancel broker. It can be used to debug performance
regressions.

The change also adds test cases to the regression test
for UPDATE, DELETE, INSERT and UPSERT WITH LOAD.

Change-Id: I86977c3985db4f56f2d4a0e89051970cec2c9411
Implements: blueprint sql-query-cancel
Merge "SQL syntax to cancel executing query, phase 3"