Fix type propagation when reassigning module.exports to a require()'d module

This pattern currently breaks the type inferencer:

```javascript
module.exports = require('./a');
```

It seems to work if `./a` has previously been required (which is why I didn't reuse `secondfile.js`), but otherwise the tests fail with:

```
node, line #: Expression has type
  {}
instead of expected type
  {A: number}

```


I dug a little bit into the issue but I couldn't find a fix. I'll update this PR if/when I figure out a solution.

(I discovered this problem in socket.io's [index.js](https://github.com/LearnBoost/socket.io/blob/64f6b244b6bd79880ba2e0ba00778a2309b39d0b/index.js).)