Implements program_directory for Win32

This also behaves exactly as GM8.1 it is always the executable directory
regardless of the OS working directory. So in run/debug/design it is
usually the temp folder and in compile mode when being executed it is
always exactly where the exe is located. The only problem is now there is
no Linux/*nix equivelant of Win32's GetModuleFilename. I also went back
and tested working_directory and I can confirm that mine works EXACTLY the
same as GM8,1, I created a show_message(working_directory) example in both
GM8.1 and ENIGMA and launched them from different directories than where
they are located at, and ENIGMA and GM8.1 always reported the OS working
directory. So the bheavior of these functions is 100% correct now.