correct fix for the old Bug#39955 (warnings in I_S.VARIABLES)

old fix only generated a warning for the *first* row
in the output
cleanup: move safe_str*() from sql_acl.cc to m_string.h
cleanup: option_type -> scope
cleanup: VARIABLE_VALUE column should be NOT NULL

it can never be set to NULL, so it should
not use MY_I_S_MAYBE_NULL flag either
cleanup: simplify sys_var::val* methods, introduce val_str_nolock()
bugs in sys_var::val_* code

1. @@boolean_var differs from SHOW VARIABLES
2. @@str_var ignored variable charset (which is wrong
   for path variables that use filesystem charset)
3. @@signed_int_var in the string context was printed
   as unsigned
mysqltest bug: replace_regex /^foo/bar/ didn't work
cleanup: @@mutex_deadlock_detector -> @@debug_mutex_deadlock_detector
MDEV-6138 show sysvar's help in I_S tables

INFORMATION_SCHEMA.SYSTEM_VARIABLES
INFORMATION_SCHEMA.SYSTEM_VARIABLES.GLOBAL_VALUE_ORIGIN
GLOBAL_VALUE_ORIGIN=AUTO
cleanup: remove unnecessary hack from federated/CMakeLists.txt
fix TokuDB not to build ft-index library when disabled
cleanup: my_init_dynamic_array2 -> init_dynamic_array2
cleanup: remove dead code
cleanup: sort struct members by size
SHOW and FLUSH for I_S tables.

Extend existing plugins to support
* SHOW QUERY_RESPONSE_TIME
* FLUSH QUERY_RESPONSE_TIME
* SHOW LOCALE

move userstat tables to use the new API instead of
hand-coded syntax
move userstat tables to a plugin
rename status_user.test -> userstat.test
MDEV-6108 update userstat feature from percona server

TOTAL_SSL_CONNECTIONS columns in CLIENT_STATISTICS and USER_STATISTICS