* Use monotonically increasing channel_id
Using a monotonically increasing channel_id (instead of a Uuid)
reduces memory use under load by ~3%
* Use replace unbounded channels with bounded
This also slightly reduces memory use
* Heap allocate Event
Wrapping the Event struct in an Arc avoids excessive copying and significantly reduces memory use.
* Implement more efficient unsubscribe strategy
* Fix various Clippy lints; bump version
* Update config defaults
This squashed commit rolls up a series of changes designed to improve
Flodgatt's public API/module boundary. Specifically, this limits the
number of Items that are exported outside the top-level modules (in some
cases because they were already not needed outside that module due to
the earlier code reorganization and in some cases by using public
re-exports to export particular Items from a private module).
Similarly, this commit moves the `Event` struct to the `response`
module (maintaining privacy for the `Event`'s implementation details)
while re-exporting the `Id` struct that `Event` uses internally at the
top level.
All of these changes are made with the goal of making Flodgatt's code
easier to reason about in isolation, which should both make it easier to
maintain and make it easier for new contributors to make changes without
understanding the entire codebase. Additionally, having fewer public
modules will make documenting Flodgatt more extensively much easier.