It's now an error to try to add an object or array to itself. The
encoder checks for circular references and fails with an error status
if one is detected.
All pointer arguments are now tested for NULL. json_string() now also
tests that strdup() succeeds. This is to ensure that no NULL values
end up in data structures.
Also desribe the different sources of errors in documentation.