Redesign parameter handling
Is your feature request related to a problem? Please describe.
Describe the solution you'd like
Previously parameters of both model and control components were managed in a object.params dictionary. This should be modified so that the property is directly a field of the object. E.g. qubit.params["frequency"] becomes qubit.frequency.
Example:
https://github.com/q-optimize/c3/blob/ef9533008dccbcb23810e1e7396f85b5f200da15/c3/system/chip.py#L77-L99
For this to work each object needs to implement a get_parameters() method that exposes properties to the parametermap to be used instead of comp.params.items() in the following:
https://github.com/q-optimize/c3/blob/ef9533008dccbcb23810e1e7396f85b5f200da15/c3/parametermap.py#L38-L45
Describe alternatives you've considered
Additional context