wifi: rework WifiData to use a separate struct for function pointers
Add a WifiDataClass struct, that is immutable and contains all the function pointers that were previously embedded in WifiData directly. They are not ever modified after creation, hence this allows to have a "static const" allocated instance of the VTable. Also rename wifi_data_deinit() to wifi_data_unref(). It does not only deinitialize the instance, instead it also frees it. Hence, rename it to "unref()".
Showing with 82 additions and 72 deletions