**Summary**
1. Added node 10 to CircleCI
2. Fixed a test that was using the `net.createServer` method. This was having issues, likely because of this: https://github.com/nodejs/node/issues/20334 - it now uses a "normal" `http` server instead, serving the same purpose.
3. Changed the `readFirstAvailableStream` method in `util/fs.js`. I'm guessing this is related to the same issue as 2, but there have been quite some changes in `10` that might be causing this - so it's just a guess. Since this piece of code could be clearer and more conceise anyway, I opted to just change it. Now instead of relying on the stream `error` event to check if a file exists, it just explicitly checks it before starting the stream.
4. Upgraded `upath` from `1.0.2` to `1.0.5` which supports node 10 (found through its `engines` field when installing).
5. Upgraded Jest
6. Fixed a bug regarding replacing symlinks to non-existent targets on Windows
7. Removed a redundant test
8. Fixed two test cases that were failing frequently on macOS builds
fixes#5761fixes#5477
**Test plan**
CI should be green (including and especially the new node10 job!)