cabana: add support for load&save extra dbc info
closed https://github.com/commaai/opendbc/pull/739, https://github.com/commaai/openpilot/pull/26372, https://github.com/commaai/openpilot/pull/26377. load/save extra info in dbcManager.

refactor dbcmanager to not depends on the class definitions in opendbc. so that it can better support for extra dbc info and Multiplexed Signals (https://github.com/commaai/opendbc/pull/777) in the future.
This refactor also removes all conversions between std::string and QString, so there are many code changes in 23b7bf4
I was working on this a bit as well, and represented the values as an std::vector<std::pair<int, std::string>> val in opendbc. This should make working with the values later much easier.
got a coredump after https://github.com/commaai/openpilot/pull/27258#event-8473003462. I'm fixing it
Hmm, must have missed something when rebasing my changes on latest master. Where do you need to check for sig not being a nullptr?
normally we don't need to check if sig==null, the only exception is in updateSeries, the sig may be null (for read all signals), we need get signal pointer from s.sig
fixed in https://github.com/commaai/openpilot/pull/27265
What do you think of storing the description as a list of key value pairs? That allows us to show the correct description in the signal widget, and implement a table based editor.
good idea
view/edit signal value description in table:
