Update libcollections tests to pass the new type rules. They used to
return a pointer to the value they were modifying, but this should not
have been legal, since that pointer would have to outlive the closure,
and the closure continues to modify the value during the execution.
The purpose of this return was just to convince LLVM that the value
was live, so instead insert calls to `black_box` outside the timing
loop. This seems better anyway, to be honest, since we don't want to
time the `black_box` itself (even though it's a noop, it must be
optimized away and so forth).