Adds a middleware type to the pipeline. The type is resolved through the builder's resolver at Build() time.
IProcessMiddlewareBuilder UseMiddleware<T>()
where T : IProcessMiddleware
When using DI, the type T must be registered in the
container before Build() is called. Core built-in middleware types
(LoggingMiddleware, RetryMiddleware) are registered automatically by
AddCliInvoke; PowerShellMiddleware and CmdMiddleware are registered
by AddCliInvokeSpecializations from the CliInvoke.Specializations package.