/// Client API errors beetw Ratman and an application
///
/// The client API consists of an authentication handshake, message
/// sending and receiving, and simple state management (for
/// subscriptions, tokens, etc).
///
/// Importantly, more base-type errors (such as I/O and encoding) are
/// handled by [RatmanError](crate::RatmanError) instead!