Type inference for spread types
Type inference for spread types

Also:
1. Fix missing spread index signatures in getTypeFromTypeLiteral
2. Spread adjacent object types during spread type creation.

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