[USETUP][SETUPLIB]: Improve how the Setup* INF APIs are interfaced in the code. Define prototypes compatibles (including their calling convention) to the ones defined by setupapi (.h/.dll) so that it can be possible to either use an internal implementation of these functions (via the inflib library), as currently done, or using imported setupapi functions, as would be done by the future 1st-stage GUI installer.
[SETUPLIB]: Cleanup the registry.c file and use the infsupp.h header.
Fixes build that was technically broken since r75247.
[USETUP]: Moving around some code: - As GetSourcePaths() is used once in usetup to initialize global UNICODE_STRING path strings once, move it out of drivesup.c and put it in usetup.c. Then remove drivesup.c : 1 file less! - Move some INF file prototype declarations out of usetup.h and inside inffile.h where they should better be, as inffile.h and .c is the glue code for the INF library, defining similar functions as the ones in setupapi.dll. - I rename our local SetupOpenInfFileW into SetupOpenInfFileExW because the latter one takes an extra user-provided LCID parameter, and this is this one that we use in usetup. - Make UNICODE_STRING SourcePath; visible only inside usetup.c (not used elsewhere). - Implement installation path validity check in case we are either in repair/update, or unattended setup mode. If the path is detected as invalid, then we fall back into manual path specification (for now...; note that we could instead fail the installation too).