Change preference value type to be stringified prior to assignment

* When the value_type is a Symbol, it will always cause the attribute to be
  dirty, even if it is the same value. With this change, if the value is not
  changing then the attribute is not marked as dirty.