Remove error classes
Remove isTransportError, isProtocolError and isApplicationError methods.
Rename finishOutput to _finishOutput
Fix typo
Extend error object with predicate methods
Add recoverAfterApplicationError option to channel constructor
Change type of error used in channel tests
Error type checks