- Added authentication command support
- Added channel enumeration support
- Added some helper methods for the channel enumeration support
Client (unittests)
- Added unittests for the above
- `makeRequest(BaseMessage request, Queue responseQueue, bool releaseAfterUse = false)` now will only deregister the queue if requested
- `makeRequest(BaseMessage request)` now requests queuew deregistration
- Attack and start a `Sequential` provider to the `Executor` in constructor
- Added `stop()` method which stops the tristanable manager and the provider associated with the executor
Client (unit tests)
- Hoist result from future
- Stop client at end
- Removed while loop
- `nopRequest()` now registers a tristanable queue, then creates a delegate which sends the message and waits on said queue, we submit this delegate to the guillotine executor
- Added a constructor which consumes a river-based `Stream`
- Added a constructor which takes in an `Address` and opens a `Socket` to it, connects and then passes it wrapped in a river-based `SockStream` to the `Stream`-based cinstructor
- Added a constructor which takes in `(string domain, ushort port)`, which resolves the domain then passes said address to the `Address`-based constructor (ditto from here)