Retain undefined in spreads w/strictNullChecks
Retain undefined in spreads w/strictNullChecks

Previously, both optional and `| undefined` caused spread properties to
combine with preceding properties and drop the `undefined`. Now, with
strictNullChecks, optional and `| undefined` properties still combine
with preceding properties but don't drop the `undefined`.

kitsonk/TypeScript,basarat/TypeScript,alexeagle/TypeScript,basarat/TypeScript,donaldpipowitch/TypeScript,RyanCavanaugh/TypeScript,weswigham/TypeScript,nojvek/TypeScript,nojvek/TypeScript,kpreisser/TypeScript,SaschaNaz/TypeScript,mihailik/TypeScript,nojvek/TypeScript,donaldpipowitch/TypeScript,basarat/TypeScript,chuckjaz/TypeScript,Microsoft/TypeScript,nojvek/TypeScript,chuckjaz/TypeScript,weswigham/TypeScript,chuckjaz/TypeScript,Eyas/TypeScript,microsoft/TypeScript,kpreisser/TypeScript,Eyas/TypeScript,Eyas/TypeScript,RyanCavanaugh/TypeScript,kpreisser/TypeScript,minestarks/TypeScript,kitsonk/TypeScript,minestarks/TypeScript,Microsoft/TypeScript,SaschaNaz/TypeScript,mihailik/TypeScript,synaptek/TypeScript,donaldpipowitch/TypeScript,microsoft/TypeScript,mihailik/TypeScript,microsoft/TypeScript,Microsoft/TypeScript,weswigham/TypeScript,Eyas/TypeScript,synaptek/TypeScript,synaptek/TypeScript,RyanCavanaugh/TypeScript,basarat/TypeScript,minestarks/TypeScript,SaschaNaz/TypeScript,mihailik/TypeScript,synaptek/TypeScript,SaschaNaz/TypeScript,TukekeSoft/TypeScript,donaldpipowitch/TypeScript,chuckjaz/TypeScript,alexeagle/TypeScript,alexeagle/TypeScript,TukekeSoft/TypeScript,kitsonk/TypeScript,TukekeSoft/TypeScript