correct method name
array mutations should only trigger one turn of runloop
implement Binding$merge for inter-component smart updates
guard against wrapped arrays causing double smart updates with inter-component bindings
allow multiple yielders per component in a single turn of the runloop (i.e. second {{yield}} created before first destroyed)
tidy up test
rename merge -> shuffle, for internal APIs. more accurate
replace getSpliceEquivalent and summariseSpliceOperation with single getNewIndices module