Fix bug that was preventing update of Vivaldi coordinates.
Fix bug that was preventing update of Vivaldi coordinates.

Change d49fc5d0b2f9 (last September) changed the set (aka "operator=")
method of coordinates to copy the prediction error too, in order to
quiet valgrind.  Unfortunately, proper functioning of coordinates
depended on this method _not_ copying the prediction error.

The vnode_impl::update_coords method worked by...
1. making a copy of the node's coordinates from the location object,
2. updating the pred_error on the source,
3. calculating and storing the updated coordinates in the copy, and then
4. calling the set method to update the source with the copy.

Since the new set method also updated the pred_err, the updated
error was overwritten with the old error.  If the prediction error
was never updated, the algorithm would keep the timestep at zero:
no movement.

The fix: first update the error, then make the copy.  Now the
updated error is in the copy so the set method doesn't undo
the error update.

A completely unrelated side-effect of this bug was finding a recent
bug in sfslite's suio_vuprintf: printf debugging doesn't work when
your printf lies.  Thanks to Russ for helping figure that one out.

sit/dht,sit/dht,sit/dht,sit/dht,sit/dht,weidezhang/dht,weidezhang/dht,weidezhang/dht,weidezhang/dht,weidezhang/dht