ESP32: Rotating device ID for BLE transport (#13206)

* ESP32: Rotating device ID for BLE transport

* Remove the ifdefs and fix the Zephyr static assert

Also, set the default value of chip_enable_additional_data_advertising
to false in src/platform/BUILD.gn. If this flag is set then Linux and
ESP32 set the Additional Data flag and displayes the C3 characteristic.

* Changed kServiceDataLenSize to kServiceDataTypeSize

Added chip_enable_additional_data_advertising = true to tv-app and
tv-cast-app
Removed the unused characteristic definitions
diff --git a/src/ble/CHIPBleServiceData.h b/src/ble/CHIPBleServiceData.h
index cd4d84e..e8ca517 100644
--- a/src/ble/CHIPBleServiceData.h
+++ b/src/ble/CHIPBleServiceData.h
@@ -45,12 +45,14 @@
  */
 struct ChipBLEDeviceIdentificationInfo
 {
-    constexpr static uint16_t kDiscriminatorMask = 0xfff;
+    constexpr static uint16_t kDiscriminatorMask     = 0xfff;
+    constexpr static uint8_t kAdditionalDataFlagMask = 0x1;
 
     uint8_t OpCode;
     uint8_t DeviceDiscriminator[2];
     uint8_t DeviceVendorId[2];
     uint8_t DeviceProductId[2];
+    uint8_t AdditionalDataFlag;
 
     void Init() { memset(this, 0, sizeof(*this)); }
 
@@ -74,6 +76,20 @@
         deviceDiscriminator |= static_cast<uint16_t>(DeviceDiscriminator[1] << 8u & ~kDiscriminatorMask);
         chip::Encoding::LittleEndian::Put16(DeviceDiscriminator, deviceDiscriminator);
     }
+
+    uint8_t GetAdditionalDataFlag() const { return (AdditionalDataFlag & kAdditionalDataFlagMask); }
+
+    void SetAdditionalDataFlag(bool flag)
+    {
+        if (flag)
+        {
+            AdditionalDataFlag |= kAdditionalDataFlagMask;
+        }
+        else
+        {
+            AdditionalDataFlag &= static_cast<uint8_t>(~kAdditionalDataFlagMask);
+        }
+    }
 } __attribute__((packed));
 
 } /* namespace Ble */