Config constructer receives a raw config and uses set_raw_config with the set_by parameter set to 'local'
device returns and accepts Config objects for get_config and set_config
create ConfigAttribute data descriptor
group accepts and returns Config objects in set_config, get_config and get_all_configs
jobclass uses Config class when getting the config for a device.

config merging is done by config objects so the merge_config method has been removed
get_job_data still returns the raw config data via config.get_raw_config()
device_show view changes, make use of new Config dataclass
fixes