Model->set(), fix for "dirty" comparison

I hope this way it'll work better, because old
(string)$value!==(string)$this->data[$name] don't work well for boolean value fields.
For example, (string)"1" !== (string)1 or (string)true will return true and as result set field as dirty.
We should use loose comparison != here instead, but at the same time take care of NULL values, because these need special treatment (as always) :P