more temporary directory wrangling

specifically for Win32 platforms - restore the TEMP, TMP, WINDIR
checking and pass them through to File::Temp in the DIR argument
if present to make sure backwards compat with Win32 temp dirs is
kept - cpantesters shows t/postdata.t failing on several Win32
platforms and inspecting the failures i see the TEMP environment
var being set, so we should probably continue to use this.