Draft: Separate read and event value
Closes #1202, pytango#573 (closed), #443 and #762
Since re-basing of !1306 (closed) was very complicated, this is a new MR, from the beginning started from proper branch
As we discussed here - I tried to split the value we use for firing change, alarm, archive and user events from the value, we use for read attribute value. Surprisingly, that was not complicated.
So now we have a two new attribute methods "set_event_value" and "set_event_value_date_quality" which has to be called if one want to fire later change, alarm, archive or user event with fire_<>_event method.
But better to use push_<>_event methods, where everything is done for you automatically.
If one want to have the previous behavior - there is opt-in at compilation time property "read_value_allowed_in_events", and then fire_<>_event method first check if event_value set and, if not - tries to use read one. This can be set on runtime with Utils::set_read_value_allowed_in_events method and checked with Utils::is_read_value_allowed_in_events. But I am not 100% sure if it works correctly.
I did not add any specific cpptango test for it, but it is tested in corresponding pytango MR and seems to work correctly.
PS this MR is based on !1313 (merged), due to it canhges the same code and I do not want to merge it later