Fixes #951
Looks better on macOS and allows gradient on tvOS.
Especially for flaky tests: - Do objectWillChange.send() _before_ performing the change - Send more events to .didChange to be more deterministic about test expectations
Makes it easier to search among app files and library files.