MB-11287 Lock TaskQ selectively, avoid busy loops

Global Thread Pool offers 2 serialization features:
1. lockless shard serialization (Flusher, VBDelete, Snapshot etc)
2. task-queue based thread control (NonIO and AuxIO)
If thread is working on tasks that need neither of the above two,
then avoid any additional locking overhead.

Also isLock variable ends up causing more overhead, removing same

Change-Id: I38b060573975786973aa608277d40851adb64e45
Reviewed-on: http://review.couchbase.org/38102
Reviewed-by: abhinav dangeti <abhinav@couchbase.com>
Reviewed-by: Sundararaman Sridharan <sundar@couchbase.com>
Tested-by: Sundararaman Sridharan <sundar@couchbase.com>