Refactor defineProperty() and related calls

- New helper to prepare (validate and normalize) property descriptors
- New helper to implement Object.defineProperty() internals, leaving
  out validation of the property descriptor
- Reimplement Object.defineProperty() using the new helpers
- Reimplement Object.defineProperties() using the new helpers
- Reimplement duk_define_property() using the new helpers, so that a
  temporary property descriptor object is no longer created
Resolve rework FIXME
duk_define_property() testcase FIXME notes
Rename duk_def_prop*() to duk_xdef_prop*()

This rename makes it clear that the internal duk_xdef_prop*() calls have
non-compliant, internal semantics and frees duk_def_prop*() for public API
calls.
Renames for duk_define_property -> duk_def_prop
Renames for duk_define_property -> duk_def_prop
Renames for duk_define_property -> duk_def_prop
Renames for duk_define_property -> duk_def_prop