Allow the dev server to use an existing http.Server

If the first argument to Server.listen is a node http.Server then the dev
server will use this. This allows the dev server to be embedded as middleware
within an existing express application.

```javascript
var app = express();
var devServer = new WebpackDevServer(webpack(config), {});
app.use(devServer.app);
var server = express.listen(3000);
devServer.listen(server);
```

I've implemented this as an overload of the dev server `listen` function, however it could be split into its own method if you think this is too messy or backwards incompatible (perhaps `devServer.listenWith(server)`).