chore(infrastructure): Skip browsers excluded by URL patterns (#3503)
chore(infrastructure): Skip browsers excluded by URL patterns (#3503)

### What it does

* Skips browsers that don't have any runnable screenshots:
    - If the user specifies a `--url` pattern on the CLI, and all test page URLs matched by that pattern are disabled in a specific browser, that browser is no longer started.

### How to test

In `diffing.json`, we currently disable all `textarea` pages in Edge due to excessive flakiness.

If you pass `--url=textarea` to `screenshot:test`, it should not start Edge:

```bash
npm run screenshot:test -- --url=mdc-textfield/classes/textarea
```

### Example output

#### Before:

```
  ACTIVE: desktop_windows_chrome@latest, desktop_windows_firefox@latest, desktop_windows_edge@latest, desktop_windows_ie@11
  QUEUED: (none)
STARTING: e26f4dc1062bb45f9c7430934da0a50758ab81b7@latest...
STARTING: 2bff3dda5f789f87678ed02adbc2c894df2d3a36@latest...
STARTING: ad38ec207bb830b138eb1f12e974b13d2dae0382@latest...
STARTING: 3695ad746f044b6e1fc54f54e2f858aa0b182b9b@11...
 STARTED: IE 11 on Windows 10! - video: https://app.crossbrowsertesting.com/public/ib956cb930a76197/selenium/13916381 (Selenium session ID: d26a09e9-ee84-4c55-a520-cad056ece246)
 STARTED: Edge 17.17134 on Windows 10! - video: https://app.crossbrowsertesting.com/public/ib956cb930a76197/selenium/13916379 (Selenium session ID: bf5fd56b-e65d-4bd2-82ef-2eac9c792b00)
CAPTURED: 0 of 12 screenshots (0.0% complete)
userAgent.alias = desktop_windows_edge@latest
reportData.screenshots.runnable_screenshot_browser_map = {
  'desktop_windows_chrome@latest': ScreenshotList {screenshots: [[Screenshot], [Screenshot], [Screenshot], [Screenshot]]},
  'desktop_windows_firefox@latest': ScreenshotList {screenshots: [[Screenshot], [Screenshot], [Screenshot], [Screenshot]]},
  'desktop_windows_ie@11': ScreenshotList {screenshots: [[Screenshot], [Screenshot], [Screenshot], [Screenshot]]}
}
   ERROR: Edge 17.17134 on Windows 10! - video: https://app.crossbrowsertesting.com/public/ib956cb930a76197/selenium/13916379 (Selenium session ID: bf5fd56b-e65d-4bd2-82ef-2eac9c792b00)
QUITTING: Edge 17.17134 on Windows 10! - video: https://app.crossbrowsertesting.com/public/ib956cb930a76197/selenium/13916379 (Selenium session ID: bf5fd56b-e65d-4bd2-82ef-2eac9c792b00)

ERROR: TypeError: Cannot read property 'screenshots' of undefined
    at SeleniumApi.driveBrowser_ (/Users/advorak/dev/mdc-web/test/screenshot/infra/lib/selenium-api.js:608:104)
    at SeleniumApi.captureAllPagesInOneBrowser_ (/Users/advorak/dev/mdc-web/test/screenshot/infra/lib/selenium-api.js:304:39)
```

![screenshot of console without this PR](https://user-images.githubusercontent.com/409245/45002664-2e314d80-af8e-11e8-887a-53c72f7781d8.png)

#### After:

```
  ACTIVE: desktop_windows_chrome@latest, desktop_windows_firefox@latest, desktop_windows_ie@11
  QUEUED: (none)
STARTING: e26f4dc1062bb45f9c7430934da0a50758ab81b7@latest...
STARTING: 2bff3dda5f789f87678ed02adbc2c894df2d3a36@latest...
STARTING: 3695ad746f044b6e1fc54f54e2f858aa0b182b9b@11...
```

![screenshot of console with this PR](https://user-images.githubusercontent.com/409245/45002720-ca5b5480-af8e-11e8-90a1-1b02c3e7b1b8.png)
material-components/material-components-web,material-components/material-components-web,material-components/material-components-web