Define two new types: ModelSettings and ModelProperties to describe the
objects describing model properties and settings.
Add static property `base` and static method `extend` to the definition
of `ModelBase` class.
Add property `defaultModelBaseClass` to `ModelBuilder` class definition.
Fix `PropertyDefinition` interface: remove `name`, add optional `id`.