CN: Migrate errors to the `common` package.

Add `Retry()` to the `common.Error` interface.
CN: Send `AUTH:RETRY` if the cluster is full.
CN: Refactor `{nodeRouter, clientConn}.Close()`.

* `nodeRouter.Route()` and `clientConn.Send()` properly handle duplicate
  `Close()` calls by setting `closeChan` to `nil`. Subsequent calls will
  attempt to send on a `nil` channel, which blocks indefinitely. This
  case is handled by the `select` block within `Close()`.
* `nodeRouter.Close()` will block until all client, OR, and IR
  connections have been closed. The router will also reject new
  connections and drop incoming messages.