If network connection is lost UnhandledPromiseRejectionWarning and all devices stop responding - even after network connection is restored
<!--
Please DO NOT DELETE THIS TEMPLATE or your issue may be closed immediately.
Before opening an issue, search for open and closed GitHub issues that match your situation.

If this is a Live Stream issue please go back and use the Live Streaming issue template.
-->

# Bug Report

### Describe the Bug
<!-- ✍️edit: --> If my network drops then I get an UnhandledPromiseRejectionWarning in my logs, and all devices stop responding even after my network connection has been restored, until I restart Homebridge. 

### To Reproduce
Steps to reproduce the behavior:
- My network connection is lost (`Failed to reach Ring server at https://api.ring.com/clients_api/ring_devices` shows In logs)
- Try to view a camera stream or use device in general.

### Expected behavior
<!-- ✍️edit: --> I expect my devices to work as they should. Also, all activity messages in the logs stop. If someone rings my doorbell I should get a notification from the home app but I don't. I should be able to view camera streams etc.


### Screenshots/Logs
<!-- ✍️edit: -->
Full log error message
```
[4/16/2021, 10:48:49 PM] [Ring] Failed to reach Ring server at https://api.ring.com/clients_api/ring_devices.  getaddrinfo EAI_AGAIN api.ring.com.  Trying again in 5 seconds...
(node:13521) UnhandledPromiseRejectionWarning: Error: getaddrinfo EAI_AGAIN api.ring.com
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:67:26)
(node:13521) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 386)
(node:13521) UnhandledPromiseRejectionWarning: Error: getaddrinfo EAI_AGAIN api.ring.com
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:67:26)
(node:13521) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 387)
(node:13521) UnhandledPromiseRejectionWarning: Error: The `onCancel` handler was attached after the promise settled.
    at onCancel (/usr/lib/node_modules/homebridge-ring/node_modules/p-cancelable/index.js:48:12)
    at makeRequest (/usr/lib/node_modules/homebridge-ring/node_modules/got/dist/source/as-promise/index.js:38:13)
    at Request.<anonymous> (/usr/lib/node_modules/homebridge-ring/node_modules/got/dist/source/as-promise/index.js:143:17)
    at Object.onceWrapper (events.js:422:26)
    at Request.emit (events.js:315:20)
    at Timeout.retry (/usr/lib/node_modules/homebridge-ring/node_modules/got/dist/source/core/index.js:1264:30)
    at listOnTimeout (internal/timers.js:554:17)
    at processTimers (internal/timers.js:497:7)
(node:13521) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 388)
(node:13521) UnhandledPromiseRejectionWarning: Error: The `onCancel` handler was attached after the promise settled.
    at onCancel (/usr/lib/node_modules/homebridge-ring/node_modules/p-cancelable/index.js:48:12)
    at makeRequest (/usr/lib/node_modules/homebridge-ring/node_modules/got/dist/source/as-promise/index.js:38:13)
    at Request.<anonymous> (/usr/lib/node_modules/homebridge-ring/node_modules/got/dist/source/as-promise/index.js:143:17)
    at Object.onceWrapper (events.js:422:26)
    at Request.emit (events.js:315:20)
    at Timeout.retry (/usr/lib/node_modules/homebridge-ring/node_modules/got/dist/source/core/index.js:1264:30)
    at listOnTimeout (internal/timers.js:554:17)
    at processTimers (internal/timers.js:497:7)
(node:13521) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 389)
```

### Additional context
<!-- ✍️edit: --> 

### Homebridge Ring Config
Post homebridge-ring platform config  _without sensitive information_
```
        {
            "refreshToken": "xxxxxxxxxx",
            "hideDoorbellSwitch": true,
            "locationIds": [
                "xxxxx"
            ],
            "platform": "Ring"
        },
```

### Environment
<!-- ✍️edit: -->
 - OS: Raspbian GNU/Linux Buster (10)
 - Node.js: v14.16.1<!-- run `node -v` to get current version -->
 - NPM: v6.14.12 <!-- run `npm -v` to get current version -->
 - homebridge-ring: v9.16.0
 - homebridge: v1.3.4
 - hoobs: N/A
