zb,zm: Abstract away property invalidation + Drop proxy callbacks-based signal API
This MR has these main changes:
-
Separate property change notification from fetching of the new property value. This way user can choose to be only notified of proprety changes, if they like. This also has implications to the invalidated property (see below).
-
Abstract away property invalidation: Property invalidation is the same as property update, except the new values are not communicated as part of the signal. This is nothing a user needs to know about (if they do, they can use low-level API) so we now handle it internally and only notify the user about a change in the property. If user is interested in the new value, they are given a simple method to fetch the new value.
-
Rename of
blocking::MessageStream
toMessageIterator
. -
Provide blocking wrappers for
SignalStream
andPropertyStream
, calledSignalIterator
andPropertyIterator
, respectively. -
We drop signal and property callback API, in favor of Stream- and Iterator-based API.
Fixes #213 (closed).