Introduce new per-thread lock to protect the list of requests.

This allows to slightly simplify svc_run_internal() code: if we processed
all the requests in a queue, then we know that new one will not appear.

MFC after:	2 weeks

(cherry picked from commit aa54e738fe2ad03844beb77d1e655206c829d0f3)
(cherry picked from commit c1002727dc4fa866b3425ea14e934fc96699b028)