WP Promise: Use Promise.race() for timeout
WP Promise: Use Promise.race() for timeout

Previously I didn't realize that ES6 standardized the `Promise.race()`
function, which allows returning the first Promise in the passed list to
resolve.

This means we can create a race between the action Promise and the
timeout Promise to provide a timeout.

```js
Promise.race( [ actionPromise, timeoutPromise ] )
	.then( stuff )
	.catch( reportTimeoutOrError );
```

Automattic/wpcom.js,Automattic/wpcom.js