EXP-58. Implement a model definition builder.

This commit introduces the class ModelDefinitionBuilder, which clients
can use to build model definitions that can be used in conjunction
with the modeling SPI. This is to provide a programmatic means for
users to create or modify model definitions (as opposed to only being
able to use a JSON file).