Don't add a non-canonical component to the result of OUTPUT-DIRECTORY.
Add utility function for computing relative pathnames.
Fix class file output dir.

The previous hack failed under output translations, so now we'll compute
the actual directory.
Reduce collisions in the message socket name.

Using a gensym, every instance of doozer would have used the same channel
ids as they ran, so every instance would be trying to communicate over
the same channel. A randomized name is still imperfect, but should at
least work most of the time.