csharp: Reduce scope of request lock

Only hold request lock if expecting a response. Don't hold it anymore
if there is no response expected.

This allows to call setters from one thread while another thread blocks
on a getter call on the same device object.
delphi: Reduce scope of request mutex and socket mutex

Only hold request lock if expecting a response. Don't hold it anymore
if there is no response expected.

This allows to call setters from one thread while another thread blocks
on a getter call on the same device object.