- Java: This distinction is already made, just reworded
- Node: We include "protocol errors" in IoError here, where retrying
probably won't help, but it won't really be harmful either.
- Swift: Automatically retryable errors are now enumerated; other
errors are still described as "manually retryable". (Also, fixed a
redundant error message format call.)
Java and Node treat DecryptionError like MetadataInvalid, since it's
more likely the metadata got corrupted than SVR did. Follow suit for
Swift, and then document the thrown errors like the other platforms.