Semantics change --- adding new fields does not affect brands

Now there is a check on update for field presence, and if the field is not
present in the object, the brand is unaffected.  This is prep for TM004
(https://github.com/brownplt/pyret-lang/wiki/TM004---data-mixins).

Simple benchmarks show almost no change in performance for adding this check,
which means the other parts of extend are really what dominates.