safexcel: Simplify request allocation
Rather than preallocating a set of requests and moving them between
queues during state transitions, maintain a shadow of the command
descriptor ring to track the driver context of each request. This is
simpler and requires less synchronization between safexcel_process() and
the ring interrupt handler.
Sponsored by: Rubicon Communications, LLC (Netgate)
(cherry picked from commit 1a6ffed5d73a22858182e68e629662afda1b9f6d)