-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