Data changed and selection -- pre controller

This is a continuation from #1414, which was closed with a reversion to commit 4fc300116f0214eeb040074fabe77557dcfa3bfc, the head of the new branch on which this PR is based. #1414 beyond this commit included more radical changes related to adding controllers to replace adapters, and other substantial changes, which will live on in a yet unnamed statecharts-based system.

Work will be done here to polish up, and to re-engineer for anything desirable in the work beyond 4fc300116f0214eeb040074fabe77557dcfa3bfc on #1414.