Change document_set alias to std::set to avoid duplicates altogether
As per RFC 7169
Fix rvalue overloads in builder
Add swap() methods and free functions for basic_element,
basic_document and basic_array
Add another array_builder test, including compile-time tests
Clean up a couple of json_reader tests
Mark some constructors noexcept/noexcept(cond)
Also remove some explicitly defaulted constructors. The compiler
can do this fine without the declarations.
Don't throw in data() when the bson data is invalid. Mark as noexcept.
It's the users responsibility to check the data is valid prior to a call
to data().
Also add some compile-time tests on the return type of data()
Add an error message generator for json parsing errors.
Elaborated on some of the expected tokens to make better messages
Make some vars const in json_reader for correctness
Fix performance regression in parse() call.