New refineValue method to prevent unnecessary recalcs

Not ready for merge.  Proves out fix for #1293 by adding a `refineValue` method to inter-component bindings so that scope of change is symmetrical with actual child component changes.

Still one failing test and then code needs to be straightened out and cleaned up.