Move invalidatingChangePre/PostHook to property-support module

[#51900021]

Not sure if conceptually this is the best place, but it will help a
lot while working on a separate modules for output and parameters
support.
Extract duplicated code and create ParameterSupport mixin

[#51900021]
Extract duplicated code and create OutputSupport mixin

[#51900021]
Extract duplicated code and create defineBuiltinProperties module

[#51900021]
Add tests of OutputSupport and ParameterSupport modules

[#51900021]

Note that they are old tests in fact. The only difference is that now
we don't use MD2D molder, but we construct an empty object, then use
mixins and work on it. So it's independent of MD2D and tests new mixin
modules.
Implement LabModelerMixin - tool for new model types

[#51900021]

This module should be useful for all Lab model types. It combines
PropertySupport, ParameterSupport and OutputSupport, as well as
defines builtin properties using provided metadata and units
definiton.

Of course this can be done manually, but this provides easy, ready-to-
go configuration, which is used by all model types at the moment.

When a model doesn't need all these features (mixins) or it needs
something special - this still can be a hint how to do it.