WL#7019: Add support for row value constructors in in predicates to range optimizer

Status: Complete

This work will fulfill a feature request from Google/Facebook. 

The task will enable IN queries with row value expressions to be executed using 
range scans. E.g.

SELECT * FROM table WHERE ( column_1, column_2 ) IN (( 'a', 'b' ), ( 'c', 'd' ))

Currently the only way to enable range scan is to rewrite the where condition into 
its equivalent DNF form, i.e.

SELECT * FROM table WHERE ( column_1 = 'a' AND column_2 = 'b' ) OR
( column_1 = 'c' AND column_2 = 'd' )

The limitation arises due to the range optimizer not being able to translate the 
former query into its native representation. In queries over scalars are currently 
translatable, whereas row values are not. This worklog task will add this 
capability.

User Documentation
==================

http://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-3.html
http://dev.mysql.com/doc/refman/5.7/en/range-optimization.html#row-constructor-
range-optimization