Allow the unknown type and record types in inline type annotations.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=53614784
type-checking return types declared by inline JsDocs
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=53677460
SmartNamePass shouldn't record assignment dependencies if the rhs is a call. The rhs is used by the context, so we don't want it removed if the lhs isn't used.

Fixes issue 1085.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=53691900
Add a typedef for Thenable objects to externs.

Thenable is very liberally defined by the Promises/A+ spec as:
"thenable" is an object or function that defines a then method.

https://github.com/promises-aplus/promises-spec
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=53693133