fix not all model properties getting rendered

- root problem is that the datatype select component
would fail if the data type is not a string
- the user had some properties defined as arrays:
eg: type: ["number"],
- added logic to try/catch the value setting and reset to
string if it errors out.
- also added updated properties iteration to update model
to make sure model properties get updated explicitly during
model save
If my understanding is correct, this will change `['number']` to `array` in the UI, i.e. select the "array" combo-box item. 

If a browser fires onchange event for the combobox, then you will change the property type from `['number']` to `'array'`. I don't know if the onchange event can be triggered, just pointing out a possible flaw.

When the user selects a different value in the combo box, it is no longer possible to revert back the original type. While it may not be perfect UX, I suppose it's not a big deal.