Merge upstream

Brings in the latest changes from [upstream specta](https://github.com/specta/specta), **except for** the `SPTReporter` stuff added in bee0d5efd99814ce70673461b2a65f51515713ab, because it only updates Xcode's testing UI _after_ all testing completes, which is less than desirable (especially with a lot of tests).