csharp: First try to fix callback dispatch stopping on disconnect

Callbacks could still get dispatched while the socket was already closed.
This resulted in a guaranteed timeout exception for getters called from
callback functions.

Try to use an additional lock to serialize disconnection and callback
dispatch. But the problem is, this could deadlock due to an mutex ordering
problem with the socket mutex.
Fix typos in GPS Bricklet config and improve callback documentation
ruby: Fix callback flag variable initialization
csharp: Fix race condition in socket closing on socket receive error

Avoid closing the wrong socket, if the disconnect callback is delayed
and a new socket has been opened in the meantime.
ruby: Check if receive thread exists before joining it
csharp: Fix auto reconnect on socket receive error
csharp: Send a packet at least every 10sec to improve WIFI disconnect detection

Otherwise a callback based program might never detect WIFI disconnect.
csharp: Handle socket error on send
java: Fix socketMutex access from DisconnectProbeThread