WL#14087: Avoid locking reads from ACL tables

Affects: Server-8.0   —   Status: Complete

The ACL tables (e.g. mysql.user and others) can be made
read-accessible to user by granting them SELECT privilege by admin.
This means that ACL table can be used for reading by commands:
  SELECT
  INSERT
  REPLACE
  UPDATE
  DELETE
  INSERT ... SELECT 
  INSERT  ... SELECT
  UPDATE|DELETE WHERE (SELECT ...)
  multi-UPDATE and multi-DELETE Statements.
  CREATE ... SELECT 
  LOAD DATA ... SET = 
  LOAD XML ... SET = 

Reading of ACL table done by above statements can cause InnoDB
row-level locks being acquired (depending on isolation mode and
binary logging mode). This means that concurrent ACL DDL will be
blocked, which is an issue, since such non-admin users can block
ACL DLL. Revoking SELECT on ACL tables for such users might be
not an option. For example, in MySQL Cloud user's admin account
(which is separate from MySQL Cloud ociadmin@ account) needs this
SELECT privilege to be able to dump/export ACL information from
the the cloud. Still this user's account should not be able to
interfere with ACL DDL done by MySQL Cloud's ociadmin@.

This WL aims to do non-locking reads on ACL table for few commands.  i.e.,
if SERIALIZABLE isolation level is in use, we should silently ignore
it and continue doing non-locking reads on ACL tables for some of
above commands.