Fixes shallow pragma for objects and tuples.

The {.shallow.} pragma was ignored unless needsComplexAssignment(t) was
true. This change fixes the assignment semantics for object and tuple
types declared as shallow.