Better abstraction for ScanRanges, always flatten skip scan if point lookup, reflect point lookup in explain plan, fix tests