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.
is the `t.htmlEqual` causing problems? It's designed to compensate for the fact that different browsers do `innerHTML` differently (cough *IE* cough), using `t.equal` may cause tests to fail in some browsers