mwl8787: fix locking for cmd send/rcv

This adds cmd_mutex, which ensures that only one thread can
send a command at a time (a restriction of the firmware), and
cmd_resp_lock, which serializes accesses to priv->cmd_resp_skb amd
priv->cmd_id in order that we can reliably tell that we are
complete()-ing the cmd_wait only for the waiting thread.

While at it:
 - change the irq handler to explicitly call mwl8787_process_cmd_resp
   rather than passing the result through priv->cmd_resp_skb,
 - change the name of aforementioned method to be shorter,
 - add some comments.

Signed-off-by: Bob Copeland <me@bobcopeland.com>