Add PDB_OUTPUT_DIRECTORY and PDB_NAME target properties (#10830)

This enables changing the name and output folder of the debug symbol
files produced by MS compilers.

Inspired-by: Thomas Bernard <thomas.bernard@ipetronik.com>
Verify that PDB_(NAME|OUTPUT_DIRECTORY) are honored in test

Teach the PDBDirectoryAndName test to check that the .pdb files appear
where expected.
Document that PDB_(NAME|OUTPUT_DIRECTORY) are ignored for VS 6
find_library: Refactor internal name iteration

Teach cmFindLibraryHelper to support multiple possible names and iterate
over all of them in each CheckDirectory call.  For now we still only
ever configure one name.
find_library: Simplify framework search logic

In cmFindLibraryCommand::FindFrameworkLibrary drop use of the old
SystemTools::FindDirectory method.  Replace it with a direct
implementation of the only code path we used.
find_library: Generalize helper macro in test case

In Tests/CMakeOnly/find_library/CMakeLists.txt generalize the
test_find_library macro and move the lib64 substitution logic to a new
test_find_library_subst macro.
find_library: Optionally consider all names in each directory

When more than one value is given to the NAMES option this command by
default will consider one name at a time and search every directory for
it.  Add a NAMES_PER_DIR option to tell this command to consider one
directory at a time and search for all names in it.
CMake Nightly Date Stamp
FindMPI: Set correct variables for calls to FPHSA

Since FPHSA is called for multiple compiler languages with "MPI_${lang}"
rather than just "MPI", make sure variables for controlling QUIET,
REQUIRED and VERSION are propagated with names prefixed by MPI_${lang}
as well, rather than just MPI.

The find_package call sets up the values of MPI_FIND_REQUIRED and friends,
but these calls to FPHSA need MPI_${lang}_FIND_REQUIRED and friends in
order to function as intended.
Merge topic 'fix-13549-make-findmpi-quiet' into next

8b7a5c6 FindMPI: Set correct variables for calls to FPHSA
7892c87 CMake Nightly Date Stamp
Ninja: don't confuse ninja's rsp files with nmake's

Move response files into CMakeFiles/ which makes them different to nmake's.
Revert "Ninja: don't confuse ninja's rsp files with nmake's"

This reverts commit 558881d6dfafe0ef98e3407d09a893c4773dffac.
Don't pick this branch for master.

Revert "Revert "Ninja: don't expand any rsp files""

This reverts commit 883881d228c5369831f5a430009cca492893ea55.
Merge topic 'ninja-link-rsp-expand' into next

dbd46e8 Don't pick this branch for master.
7d44df3 Revert "Ninja: don't confuse ninja's rsp files with nmake's"
Merge topic 'ninja-link-rsp-expand_2' into next

2e7ffe0 Ninja: don't confuse ninja's rsp files with nmake's
Merge topic 'vs-pdb-output' into next

efc83b3 Document that PDB_(NAME|OUTPUT_DIRECTORY) are ignored for VS 6
b294457 Verify that PDB_(NAME|OUTPUT_DIRECTORY) are honored in test
3f60dbf Add PDB_OUTPUT_DIRECTORY and PDB_NAME target properties (#10830)
Merge topic 'find_library-NAMES_PER_DIR' into next

66759ee find_library: Optionally consider all names in each directory
9cb68b1 find_library: Generalize helper macro in test case
b64dd76 find_library: Simplify framework search logic
531c71b find_library: Refactor internal name iteration
Ninja: move -LIBPATH behind -link option

Don' pass linker option to the compile
Ninja: move <OBJECTS> in front of the first linker option

In the response file also linker options could be passed,
and because <OBJECTS> is replaced by a response file, it
is necessary that no compiler option follows <OBJECTS>.
Ninja: add option to enforce usage of response files

If the cmake or environment variable CMAKE_NINJA_FORCE_RESPONSE_FILE
is set then a response file is used regardless the command line length.