BaseCmd.addCallback: improved to call callFunc immediately
if command is already done. This makes the behavior
much more predictable; for example you can add a callback
after creating a devCmd and know that it will be called
at least once.

Device: startCmdList was broken; it could not start properly.