[tipc] Unify Service/UnbufferedService in macro

Background:
Currently, the traits for Service and UnbufferedService are
incompatible, even though they do roughly the same thing (with Service
being a subset of UnbufferedService). Additionally, the current
service_dispatcher!{} macro does not allow for a mix of services that
implement these traits, only services that are Services.

New Stuff:
* Implement UnbufferedService for all types that impl Service
* Change service_dispatcher!{} to use UnbufferedService under the hood,
  which, with the above change, allows for both traits to be included
  together.
* Change the UnbufferedService API to pass the Dispatcher buffer down to
  the Service, for the sake of efficiency, and compatibility.

Notes/Caveats:
* The API change for UnbufferedService is done to give the user more
  options, and to allow for the Dispatcher to actually use the buffer
  for something.

Bug: 312749603

Change-Id: Id6854eb8f7102d42b34b0a47be7632669dea982c
Signed-off-by: Ross Kettleson <kettro@google.com>
1 file changed