Fix detail log so it outputs the names of all the changed properties
even if the values are not being output.
While in the neighborhood, clean up and simplify the detail logging code.