Fix model production for arrays.

When storing 0 in an array make sure that the corresponding
value in the root array is fresh and *not* the default value 0.
Bug fix: don't get fresh value unless needed.

The previous patch could call fresh value for Boolean sort, if there is a
store on the array that stores 0.  Now we only get a fresh value, if the
default value is not overwritten by the current array.  Since Boolean sorted
arrays should have a select for all values that are overwritten, the fresh
value should never be got for Boolean sorts.
Fix the last patch.

Put extendFresh() in the if condition.
Merge branch 'array' into arrayprop