Support generic pipelines
This pull request introduces support for async generic pipelines in DispatchR. Prior to this change, generic pipelines could only be registered and resolved synchronously, which limited extensibility for request handlers returning Task or ValueTask.
With this update:
DispatchR can now resolve and execute generic pipelines asynchronously, allowing full compatibility with async request/response flows.
There's no longer a need to define separate pipelines for every request type; a single GenericPipeline<TRequest, TResponse> now supports async methods.
The system gracefully handles all common return types including Task, ValueTask, and synchronous results.
This change improves scalability and aligns DispatchR with modern asynchronous programming practices in .NET.