Fix error with multiple calls of callRemote.

Each callRemote call returned the same deferred, which obviously prevented multiple calls.
Now we return a new instance instead. Unfortunately we need to call responseReceived
for each response, so we made a 'custom' Deferred subclass for this. Not the best solution,
but it works - might refactor it in the future.
Default to no timeout (socket default)
Call example method that doesn't get an exception