Checking the length of the string in get_local_socket_name() to make sure we don't overrun the string we're filling in.
Fixing orientation code.  (1) made it right handed, (2) using q_invert and swapping order of application so that the calibration rotation is properly undone.  This makes the orientation changes right handed and match the translation axes.
Deletes a semaphore in destroy that was created in init to avoid leaking memory and resources.
Detaching threads when they are killed or exit so that their system resources will be freed (Posix threads).
Makes the new single-port listening code robust to getting an empty host name (it does not crash now, just goes back to listening on all ports).
Fix YEI coordinate system to be the de-facto VRPN standard.

Involved changing which CS we ask the device for, and yet
still having to apply a correction quat, so not logical - but it works.
Direct initialization of the zero position.
Remove YEI rotation hack.

Sphere calibration, re-tare, and commit settings helped the YEI make sense.