By introducing 'no module' support this inadvertently triggered the find_package to use the "full version" version selection.
From https://cmake.org/cmake/help/latest/command/find_package.html#version-selection:
> When the [version] argument is given, Config mode will only find a version of the package that claims compatibility with the requested version (see format specification).
FMT does not set this configuration https://github.com/fmtlib/fmt/blob/7.1.3/support/cmake/fmt-config.cmake.in... but regardless it would not be "any compatibility" based on version semantics.
Which causes this error. v1.8.2 builds perfectly fine.
```
CMake Error at CMakeLists.txt:181 (find_package):
Could not find a configuration file for package "fmt" that is compatible
with requested version "5.3.0".
The following configuration files were considered but not accepted:
/home/proj/build/e98598522b7c484d9220bffc7ec84474515facbc/fmt-config.cmake, version: 7.1.3
```
* Reduces the range of possible version we'd need to test with.
* Enables newer policies reducing possible deprecation warnings from new policies.
* Allows removing some code for compatibility with older versions.
* Coincides with LLVM's bump to requiring CMake 3.13.
Compilation is shorten by 2 on windows with msvc. Some improvement for gcc and appleclang. Add SPDLOG_ENABLE_PCH option to CMake that is defaulted to ON. This will enable precompiled header by default if supported. It can be disable if user have a conflict of any kind. Or to check that project is still compiling with CMake version that do not support precompiled header.