cleanup: class my_var

* split my_var class in three - base my_var and two descencants, move
  properties into descendants, remove if(), create a virtual method instead
* factor out the common code in the select_var_ident parser rule
cleanup: param_marker rule in the parser

preserve the Item_param type of the param_marker in the parser,
don't upcast cast it to Item
cleanup sql_yacc.yy: s/YYABORT/MYSQL_YYABORT/
cleanup sql_yacc: introduce opt_not rule, combine otherwise duplicate rules
cleanup sql_yacc.yy: remove duplicate code in opt_union rule
cleanup sql_yacc.yy: rename rules for loops with and without label to follow BEGIN...END rule naming
cleanup sql_yacc.yy: factor out duplicate code in PROCEDURE/FUNCTION/TRIGGER/EVENT grammar
cleanup sql_yacc.yy: reduce code duplication in rules for BEGIN...END with and without label
cleanup sql_yacc.yy: s/IF/IF_SYM/
cleanup sql_yacc.yy: rules for the CASE ... END CASE statement
cleanup sql_yacc.yy: remove redundant ev_sql_stmt_inner rule
cleanup: get rid of (Item_splocal*)item downcast
MDEV-5317 out parameters in PREPARE "SELECT ... INTO"

originally based on the patch by Antony T Curtis
MDEV-5317 Compound statement / anonymous blocks

originally based on the patch by Antony T Curtis
cleanup: query rewrites for Item_param and Item_splocal

Fix query rewrites in PS code - it was memcpy-ing the same query tail
many times. Instead use the same logic as in SP code, copy query pieces
into the destination buffer.

Extract this logic into a separate class Rewritable_query_parameter
with Item_param and Item_splocal inheriting from it.

Create a helper class Copy_query_with_rewrite that incapsulates
the query rewriting logic, use it in SP and PS.
MDEV-6603 SBR failure upon executing a prepared statement with input placeholder under anonymous block

Normally, Prepared_statement object rewrites the query on execution
to replace ?-placeholders with values. The rewritten query may be written
to logs (including binlog) or stored in the query cache.

But for compound statements, the whole block is prepared and executed,
while contained statements are logged individually. So it doesn't make
sense to rewrite the original statement block. Instead, we need to rewrite
every contained statement. SP is already doing it to replace SP variables
with values. Let it rewrite PS parameters too in the same loop.
MDEV-6609 SQL inside an anonymous block is executed with wrong SQL_MODE
MDEV-6606 Server crashes in String::append on selecting sql_mode inside anonymous block
MDEV-6513 deprecate engine_condition_pushdown value of the @@optimizer_switch

* ignore the OPTIMIZER_SWITCH_ENGINE_CONDITION_PUSHDOWN bit
* issue a deprecation warning on 'engine_condition_pushdown=on'
* remove unused remains of the old pre-5.5 engine_condition_pushdown variable
prefer to use new flag name when possible
cleanup: remove hidden I_S.VARIABLES and I_S.STATUS tables

their only purpose was to distinguish between
SHOW and SELECT and there are cleaner ways of doing  it.