Rebase/material attribute utility
Updates mainly associated to Truchas material attributes
- Use new smtk::attribute::Item::forceRequired() method to update each phase property widget based on whether or not the corresponding shared/common property is enabled.
- Apply new ForceExpression option to specific_enthalpy and solid_fraction_table items.
- Add MaterialAttributeUtils class with logic to update attribute contents in response to user actions (add phase, remove phase, select/deselect shared property).
- Migrate validation logic to MaterialAttributeUtils class and add python bindings to new smtk.simulation.truchas module. Result is single validation code for UI and python environments.