Don't mess up callstack by do an async getErrorString
reorganize some tests
Only negative return values are errors.
Positive > 0 are a value that we need.
For example the device id from addDevice
Merge remote-tracking branch 'upstream/master' into devasync
speed up the test of setName
re enable test of switches
Merge pull request #25 from kmpm/devasync

Support async addDevice and similar methods.