* Protect against literal interpretation
On msvc 2017 this seems to have been checking for existence of a flag called `_warning_flag`
* Stop checking for flag called "IN"
* Ensure compiler flag checks are not cached
Per the docs of CMake the call to CHECK_CXX_COMPILER_FLAG
stores the result in an internal cache entry. In this loop we were
basically skipping the "supported" check for all flags after the
first one. Forcibly unsetting the variable before each check
ensures that we actually check if each specific flag is supported
...to the CMake build script. The pkg-config file needs a version number (which
it takes from the CMakeLists.txt variable), which I've set to 1.0.0. The cmake
project declaration needs to be after the minimum-requirement declaration to
avoid errors from the cmake's change in VERSION semantics.
This uses cmake to allow building as a static library and to build the tests
To use `cmake`
```
$ mkdir build
$ cd build
$ cmake ..
.
.
-- Build files have been written to: ~/json11/build
$ make
Scanning dependencies of target json11
[ 20%] Building CXX object CMakeFiles/json11.dir/json11.cpp.o
[ 40%] Linking CXX static library libjson11.a
[ 40%] Built target json11
Scanning dependencies of target json11_test
[ 60%] Building CXX object CMakeFiles/json11_test.dir/json11.cpp.o
[ 80%] Building CXX object CMakeFiles/json11_test.dir/test.cpp.o
[100%] Linking CXX executable json11_test
[100%] Built target json11_test
$ make test
running tests...
Test project /Users/paul/dev/json11/build
Start 1: json11_test
1/1 Test #1: json11_test ...................... Passed 0.00 sec
100% tests passed, 0 tests failed out of 1
Total Test time (real) = 0.01 sec
$
```