[CB-6293] dual return method implemented in run

non-breaking support of promises and callbacks
[CB-6293] dual return method implemented in run

non-breaking support of promises and callbacks
[CB-6293] additional tests for run command
[CB-6296] callback/promise interface implemented

if a callback parameter is provided, the callback is called and the promise is used internally only. This should be non-breaking and backwards compatible with the existing use of the cli
[CB-6296] implemented tests for return interface of create function