Add license and change indents from tab to space.
Remove cppformat and strtk
(Pretty)Writer: drop restriction to object/array roots
drop object/array root restriction from recursive parser
Reader: drop object/array root restrction from iterative parser
jsoncheckertest: skip "fail1.json", as it is now accepted by RapidJSON
writertest: add some roundtrip tests for non-compound root values
readertest: drop object/array root restriction tests
error/{en,error}.h: drop unused kParseErrorDocumentRootNotObjectOrArray error
readme.md: reference RFC7159 instead of RFC4627
tutorial.md: lift restriction to object/array root values
readertest.cpp: use top-level Parse functions, instead of internal ones

With the allowance of arbitrary root value types, the individual tests
can use the top-level Parse functions, instead of ParseFoo() variants.

Secondly, some unneeded array wrappers have been dropped and non-singular
tests starting with other values than objects or arrays have been added.
BaseReaderHandler: allow overriding of Default() implementation

By adding an optional CRTP template parameter, the BaseReaderHandler
can call the "overridden" `Default()` function from the `Derived`
class.

See https://en.wikipedia.org/wiki/Curiously_recurring_template_pattern
readertest.cpp: use CRTP to activate "ADD_FAILURE()" calls in handlers
jsoncheckertest: add checks for iterative parser as well
tabs to 4 spaces (following 0dbcc1cf)
readertest.cpp: remove remaining use of private functions