Linux alternate languages

Hmmm... apparently I built this on top of my libxml changes, so it appears to have both mixed in here. Let me know if this is too weird, and I'll try backing out - I was unable to build without the thirdparty changes in the libxml branch. But there should be only four files changed here, maybe you can cherry-pick just those:

lnxspec.cpp
osxspec.cpp
w32spec.cpp
dskspec.cpp

also... note that despite the name of this branch, the alternate language mechanism is implemented for osx and windows as well.