Avoid duplicating data in Term#set_data

The dup turned out to be a rather big time sink for high-volume inputs.  This
achieves the same thing with less garbage.
Make separate setting dimension data and updating slot data

These two operations sometimes need to go together, for instance when linkages
update, but don't always need to.  Making them separate allows for some
controllers to drastically speed up their operation by only updating slot data
as needed.