Add a new hidden property `__parent` that's automatically set on all
instances of embedded models.
For backwards compatibility, this feature is not enabled by default.
You can turn it on by adding the following line to `server/server.js`
file:
app.registry.modelBuilder.settings.parentRef = true;
When converting plain-data object values into model instances,
correctly handle the case where the constructor functions is a class
constructor and must be invoked via `new`.
Rework the code building model constructors to leverage `Function` class
and dynamically emit a constructor function named after the model.
Before this change, all model classes were called "ModelConstructor",
which made debugging difficult.
After this change, a model class for model "User" is called "User.
Because not all valid model names are also valid JavaScript identifiers,
we implement a simple sanitization technique (replacing characters like
"-", "." and ":" with underscore "_") and fall back to legacy
"ModelConstructor" if the model name is still not a valid JS identifier.