Use communicationError for network errors

This seems cleaner than trying to maintain the list of errors which might have originated from operations on the network socket / TLS layer.

Any thoughts?