Remove invalid QJSValue type
Rationale: It's confusing to have an invalid type (which doesn't
exist in JavaScript), and it creates lots of extra cases that have
to be handled e.g. in value conversion and comparison. The Undefined
type should be sufficient.
Also, the invalid value type was being (ab)used to 1) make
setProperty() act as a property deleter, and 2) signify that a
property queried by property() doesn't exist. The recently introduced
functions has(Own)Property() and deleteProperty() now provide that
functionality.
Default-constructed QJSValues now have the Undefined type.
Task-number: QTBUG-23604
Change-Id: I1847492724d31e03ee1212c09ec87a2010920dc5
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>