Check for the accessible symbol from exported import

eg:
// @Filename: w1.ts
export = Widget1
class Widget1 { name = 'one'; }

// @Filename: exporter.ts
export import w = require('./w1');

// @Filename: consumer.ts
import e = require('./exporter');

export function w(): e.w { // Should be OK
    return new e.w();
}

In this looking for the name of return type of function w,
not just look for the alias == SymbolOfReturnType but also
look for alias.exportedSymbols === symbolOfReturnType
and qualify it during the toString
Report error if the entityname reference in the import declaration is using private module
Use typeof function in the declaration emitter instead of unwinding first level
During qualification if we are looking in value space, the left qualifier meaning is also value
Make changes to report error if the type used from external module cannot be named
Adds test cases too
Merge pull request #431 from Microsoft/cannotName

Make changes to report error if the type used from external module cannot be named
Merge pull request #414 from Microsoft/typeOfFunctionAndStaticFunction

Emit Type of function and static function correctly in declaration file
Remove unnecessary sort call in alias declarations that get written
Merge pull request #413 from Microsoft/inaccessibleAliasEntity

Report error if the entityname reference in the import declaration is us...
Merge pull request #412 from Microsoft/exportImport

Check for the accessible symbol from exported import