Weak type errors for signature-only types too
Weak type errors for signature-only types too

Now source types that only have a call signature (like functions) or construct
signature will get a weak type error too. This is really good for
catching uncalled functions:

```ts
functionTakingWeakType(returnWeakType);
// OOPS. Forgot to call `returnWeakType()`. That's an error!
```

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