basic_document/array are valid empty documents on default construction
Move boost::exception error_info wrappers into detail namespace
Fix confusion when (const) char* were used to construct elements.
They are now assumed to be C style strings unless the container
uses them as iterators (eg. std::array) in which case the data is
constructed with them.
Removed now unneeded is_string_literal trait.
Modified document_iter to only work with basic_element.
Cleanup traits.hpp
Start documenting everything using doxygen.
Add in a github link in the header & match colours
Add license to features & copyright notice in footer
Remove pointless usage of enable_if in the builder classes.
Further cleanup of builder classes
Simplify byte swapping with std::reverse
Fix array_builder::emplace exception safety
Also detect snprintf errors.
Document builder
Slightly simplify basic_document construction and add document comments
Ensure noexcept swappability of basic_element
Reduce platform specific pragmas for disabling deprecation warnings
Put clang specific pragma in a macro
Make is_iterator_pointer trait GCC compatible
Don't try to set noexcept on basic_element default constructor.
It didn't take into account the std::string constructor so it
causes a mismatch with GCC.
Just let the compiler deduce it.
Use better document initialisation in builder example
Fix json_reader conversions & basic_array constructors.