WL#8971: Deprecate and remove partitioning storage engine

Affects: Server-8.0   —   Status: Complete   —   Priority: Medium

This WL is about deprecation (5.7) and removal (5.8) of the partitioning storage
engine (ha_partition). After this WL, partitioning will only be available for
storage engines that support this natively.
Requirements within the scope of this WL, to be implemented and pushed to

F1. Remove source code of the partitioning engine. Remove cmake option
    'WITH_PARTITION_STORAGE_ENGINE'. Remove 'PARTITION' as a known engine.
    The '--skip-partition' command line option will also be disabled.

F2. Introduce errors and error handling when trying to create a
    table in an engine not supporting partitioning natively.

F3. Remove test primitives related to non-native partitioning

F4. Remove tests applicable to non-native partitioning. Rewrite partitioning
    tests from using non-native partitioning to use native partitioning

F5. Keep the entry 'DB_TYPE_PARTITION_DB' in the enum legacy_db_type. This value
    will not be used in 8.0 and onwards, but was used in 5.7, and is needed for
    upgrade from 5.7 to work as intended; i.e., the enum values must not be 
    disturbed (see also F8). The predicate 'is_ha_partition_handlerton()' shall 
    be removed, and its usage modified (see F2).

F6. Build with NDB storage engine to verify that MySQL Cluster builds are not
    broken by this WL. Also ask Cluster devs to verify that this WL will not be
    problematic for them.

Requirements within the scope of this WL, to be pushed as a separate patch to

F7. Deprecate usage of non-native partitioning in 5.7. This essentially means
    to adapt F2 but to return a deprecation warning rather than an error.
    Additionally, tests in 5.7 must be updated to handle the deprecation
    warning. We also need to decide whether the deprecation warning should
    be promoted to error when running in strict mode.

Requirements outside the scope of this WL:

F8. Reject upgrade to MySQL 8.0 when tables using non-native partitioning are 
    present. (see also F5).

F9. Rewrite and extend innodb native partitioning to use SE specific code for
    partition handling rather than common code at the SQL layer. 

F10. Remove dead code at the SQL layer after F8 is implemented. This will be 
     done as separate followup patches or bug fixes pushed to mysql-trunk.*

F11. Update test infrastructure (not on mysql-trunk) to handle the removal of 
     the partitioning engine. This will probably involve System QA tests and 
Interfaces affected:

* SQL syntax/semantics: Partition related DDL statements will now fail for
  engines not supporting native partitioning.

* Errors and warnings: The SQL statements mentioned above will fail, but with
  an already existing error code 'ER_CHECK_NOT_IMPLEMENTED'.

* Plugins/APIs: The partition engine will have its source code removed, and will
  consequently not be built.