MDEV-3812: Remove unneeded extra call to engine->exec() in Item_subselect::exec, remove enum store_key_result

This task fixes an ineffeciency that is a remainder from MySQL 5.0/5.1. There, subqueries
were optimized in a lazy manner, when executed for the first time. During this lazy optimization
it may happen that the server finds a more efficient subquery engine, and substitute the current
engine of the query being executed with the new engine. This required re-execution of the engine.

MariaDB 5.3 pre-optimizes subqueries in almost all cases, and the engine is chosen in most cases,
except when subquery materialization found that it must use partial matching. In this case, the
current code was performing one extra re-execution although it was not needed at all. The patch
performs the re-execution only if the engine was changed while executing.

In addition the patch performs small cleanup by removing "enum store_key_result" because it is
essentially a boolean, and the code that uses it already maps it to a boolean.
MDEV-3812

This patch undoes the removal of enum store_key_result by the previous patch for mdev-3812.
MDEV-3824 - xtradb file rename fails on Windows, if new name already exists.

Changed implementation os_file_rename() on Windows  such as it does not fail if destination file already exists. Now MoveFileEx() with MOVEFILE_REPLACE_EXISTING flag is used, instead of prior MoveFile().
This fixed implementation is better compatible with rename() on POSIX systems.
MDEV-672 : storage/maria and storage/perfschema do not appear to honor WITH_UNIT_TESTS

Disable compiling unit tests if WITH_UNIT_TEST is FALSE.

Also, fix CMake code to allow compilation WITHOUT_ARIA_STORAGE_ENGINE
Fix crashes on 32-bit async client lib when -fomit-frame-pointer

 - Ensure asm parameters are in registers, so we do not de-reference from
   bogus stack pointer.

 - Make return address undefined in DWARF unwind info in my_context_spawn,
   so DWARF-based unwinders will know this is the end of the call stack
   (same as the amd64 fix for the similar issue).
MDEV-531 : Warning: Forcing close of thread ... in rpl_binlog_index

Use post_kill_notification in for one_thread_per_connection scheduler, 
the same as already used in threadpool, to reliably wake a thread  stuck in 
read() or in different poll() variations.
MDEV-3830 - fix build on Intel compiler
MDEV-536: LP:1050806 - different result for a query using subquery, and
MDEV-567: Wrong result from a query with correlated subquery if ICP is allowed:

backport the fix developed for SHOW EXPLAIN: 

revision-id: psergey@askmonty.org-20120719115219-212cxmm6qvf0wlrb
branch nick: 5.5-show-explain-r21
timestamp: Thu 2012-07-19 15:52:19 +0400
  BUG#992942 & MDEV-325: Pre-liminary commit for testing

and adjust it so that it handles DS-MRR scans correctly.
MDEV-3830 - fix compilation for Intel compiler,  
avoid .cfi_escape , 32 bit code.
Added the test case for bug #54599 into mariadb code line.
The fix for this bug was pulled from mysql-5.5 earlier.
build feedback plugin with ssl (changes for cmake).
fix the ssl related code to use newer function prototypes
Fixed bug mdev-3851.
Any ref access to a table by a key fully extended by the components
of the primary key should be actually an eq_ref access.