WL#9525: InnoDB_New_DD: update InnoDB specific metadata into new DD for DDL

Affects: Server-8.0   —   Status: Complete

This is the worklog to propogate InnoDB specific metadata into new DD for DDL
operations. More specifically, filling the se_private_data of different system
tables for create table, create tablespace and alter table etc.

All these metadata, which should be written for both non-partitioned tables and
partitioned tables, would be filled during create table and other alter table
time, so they will be propagated into DD tables.

This worklog also includes creating the new DD tablespace object, such as
dd::tablespaces and dd::Tablespace_files for "implicit" (file per table) tables
during create table time or alter table time.

This worklog would also "fix" the newDD system tables' se_private_data so their
root page/space id points etc. to the right place. So that the system can fetch
these basic information when the newDD system table themselves are opened.

The whole work depends on WL#7743, which implements proper DDL APIs for InnoDB 
by passing dd::Table/dd::Tablespace objects needed to InnoDB. There is an issue 
that partitioned table doesn't support its native 
ha_innopart::delete_table/rename_table APIs, but leverages the 
ha_innobase::delete_table/rename_table. Since server is not able to pass the 
valid dd::Table for partitioned table to these two ha_innobase APIs, WL#7743 
should also support ha_innopart::delete_table/rename_table and pass valid 
dd::Table to them. This worklog implements these two new APIs.

To verify this worklog works, opening table by accessing the passed in dd::Table 
should also be implemented in this worklog, so once the InnoDB internal table 
object is not in the memory(evicted, or after restart), it can be constructed 
from the dd::Table, etc.