json_encode with JSON_THROW_ON_ERROR, everywhere, finally

A codebase-wide sweep for json_encode and json_decode without the throw flag, eleven years after the flag arrived.

$ grep -rn 'json_(en|de)code(' src/ | grep -vc JSON_THROW_ON_ERROR
88

# of which, once examined:
#   61  cannot fail in practice — encoding a known array
#   22  could fail and returned false or null silently
#    5  already checked json_last_error() by hand

# all 88 changed anyway. a uniform rule is cheaper to
# review than a judgement per call site.

Twenty-two silent failures is the finding, and one of them had been returning null from an API endpoint for a payload containing invalid UTF-8 from a supplier. The uniform rule is the part worth arguing for: a reviewer checking whether each call can fail is a reviewer who will get one wrong.