Fixes for object spread emit
Fixes for object spread emit

1. Retain function modifiers. They were previously dropped.
2. Do not emit __assign for object literals with no spreads, just visit
children.
3. call aggregateTransformFlags after creating an __assign call.

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