[PR] lib/node.js: 'https' interfaces should use tls$TLSSocket instead of net$Socket
[PR] lib/node.js: 'https' interfaces should use tls$TLSSocket instead of net$Socket

Summary:
The issue:

```js
// flow
const http = require('http');
const https = require('https');

http.request({}, res => {
    console.log(res.socket.getPeerCertificate());  // <-- true positive
});
https.request({}, res => {
    console.log(res.socket.getPeerCertificate());  // <-- false positive
});
```

Before, Flow would flag both with the message: Cannot call `res.socket.getPeerCertificate` because property `getPeerCertificate` is missing in `net$Socket` [1].

After this change, Flow only flags the first.

My fix adds a `SocketT` type parameter to a few base classes.  Not sure if that's the best way to do it.
Pull Request resolved: https://github.com/facebook/flow/pull/7215

Reviewed By: dsainati1

Differential Revision: D13868636

Pulled By: nmote

fbshipit-source-id: d140d4b206426292e3c96e7e81578d7844c86424

facebook/flow,facebook/flow,popham/flow,mroch/flow,facebook/flow,gabelevi/flow,samwgoldman/flow,facebook/flow,popham/flow,mroch/flow,samwgoldman/flow,mroch/flow,facebook/flow,mroch/flow,samwgoldman/flow,samwgoldman/flow,popham/flow,samwgoldman/flow,popham/flow,gabelevi/flow,popham/flow,facebook/flow,mroch/flow,mroch/flow,gabelevi/flow,gabelevi/flow,samwgoldman/flow,popham/flow,mroch/flow,gabelevi/flow,popham/flow,facebook/flow,gabelevi/flow,gabelevi/flow,samwgoldman/flow