fmt 12.2 changed the implementation path used by `fmt::format_to` with
`std::back_insert_iterator`. Under nvcc, that path rejects
`std::back_insert_iterator<fmt::memory_buffer>` because fmt’s constexpr helper
takes a non-literal iterator type. Replacing `std::back_inserter(buffer)` with
`fmt::appender(buffer)` for `fmt::memory_buffer` outputs avoids that path and is
the fmt-native way to append to `memory_buffer`.
- /W4 on MSVC
- -Wall -Wextra + others on gcc/clang
- New NVBench_ENABLE_WERROR option to toggle "warnings as errors"
- Mark the nlohmann_json library as IMPORTED to switch to system includes
- Rename nvbench_main -> nvbench.main to follow target name conventions
- Explicitly suppress some cudafe warnings when compiling templates in
nlohmann_json headers.
- Explicitly suppress some warnings from Thrust headers.
- Various fixes for warnings exposed by new flags.
- Disable CUPTI on CTK < 11.3 (See #52).