Implement the switch_vif_chanctx operation with support for a
single-vif and SWAP mode. The REASSIGN mode and multi-vifs are not
supported yet.
This operation needs to implement 4 steps, namely unassign, remove,
add and assign the chanctx. In order to do this, split out these
operations into locked and non-locked parts, thus allowing us to call
them while locked.
Additionally, in order to allow us to restart the hardware when
something fails, add a boolean to the iwl_mvm_nic_restart() function
that tells whether the restart was triggered by a FW error or
something else.