Temporal reweight take2

And this is why mutability is bad - rather than modifying the weights of Instances in-place, which could have all kinds of undesirable side-effects (what if we re-use these instances elsewhere?), this method should return a new set of instances that have been reweighted, leaving the original instances unmodified.