reader: When a read() fails, don't track back on end()
reader: When a read() fails, don't track back on end()

When a call to json_reader_read_element() fails if the element
doesn't exist, we need to call json_reader_end_element() to clear
out any errors.

But the _end_element() call will backtrack to the parent node,
when the _read_element() call did not set the child node.

To fix this, leave early from _end_*() calls when an error has
been set.

https://bugzilla.gnome.org/show_bug.cgi?id=723428

ebassi/json-glib,ebassi/json-glib,Distrotech/json-glib,frida/json-glib,Distrotech/json-glib,Distrotech/json-glib,frida/json-glib,GNOME/json-glib,ebassi/json-glib,GNOME/json-glib