Preserve old environment variable values when preloading

When used with nonempty LD_PRELOAD, old value will be overwritten. This can cause problems when program is executed from special environment, e.g. optirun/primusrun (bumblebee) context which sets LD_PRELOAD and program using OpenGL will fail if the correct library is not preloaded.

Tested on Linux. Need testing on Mac OS X.