WL#8244: Hints for subquery strategies

Status: Complete

Using the new syntax and infrastructure for hints (see WL#8016 and WL#8017), add
hints to control which subquery execution strategies should be used.  This
includes whether or not to use semi-join, which semi-join strategy to use, and,
in case semi-join is not used, whether to use subquery materialization or
in-to-exists transformation.

Note that this work also should make it possible to prevent any of the semi-join
strategy, also Duplicate Weed-out, which is not possible to turn off with
optimizer_switch.

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

* http://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-8.html
* http://dev.mysql.com/doc/refman/5.7/en/optimizer-hints.html