Merge pull request #188 from miniupnp/master

Try to open files with uppercase name after trying lowercase
-Fix: Windows is being Windows; hopefully this fixes it
-Codechange: file access using data-dir from config (patch by samsve)
-Fix: Windows 32bit is stdcall, Windows 64bit is cdecl, Linux is cdecl .. handle all cases correctly
-Fix: strcpy() should not be called on overlapping strings

My strcpy() documentation reads : "The  strings  may  not overlap"
memmove() is designed for that purpose.
-Codechange: avoid strcpy/strcat in Drivers_GenerateFilename()

In order to avoid call of potentially dangerous functions
strcpy/strcat, the code has be refactored and now
uses strncpy/snprintf.
-Codechange: replaced strcpy/strcat with strncpy/snprintf

strcpy/strcat function are potential sources of bugs
Merge pull request #190 from miniupnp/string_fix

String fix : remove most use of strcpy/strcat