dsched_fq - Overhaul locking
* use lockmgr lock for FQP lock, as some strategy ops can sleep while
acquiring another lock (CAM SIM lock, for example).
* reduce overall locking when it isn't really required, mainly during
deallocation (losing last ref) of objects. The locking is only
explicitly required to protect the internal TAILQs.
* NOTE: this is an _attempt_ to fix some unidentified deadlocks that have
been reported occasionally. While it shouldn't happen, be aware that
this might explode.
Reported-by: Antonio Huete, Jan Lentfer