Quick DISTINCT scans

Derby can use a hash table instead of a sorter to eliminate duplicates when performing a DISTINCT in the following cases:
This technique allows for minimal locking when performing the scan at the READ COMMITTED isolation level.
Note: This technique appears in RunTimeStatistics as a DistinctScanResultSet.