combine DELETE statements WHERE clauses for immediately sequential delete ranges
whenever the from end receives a mismatched hash and has 0 rows in that range, increase the row range to include the next row.

fixes poor performance when a range of rows have been deleted at the from end - formerly this resulted in requesting the deleted rows one by one.  the reverse problem does not occur because the to end always finds the next row and hashes the range from the previous key on to this row, so it already works (though one round-trip could be saved in the future by indicating to the from end that this hash command's range is not worth subdividing further).