CAR-1744: add an param "result" so that an operation can voluntarily set result
CAR-1744: add an param "result" so that an operation can voluntarily set result

Previously no operation needs to return any result (i.e. all return void/unit).
But eventually, in rare occasions at least, we will need to give some data back
to the caller as result.

Instead of going throug all the existing code paths to change/add their return
type/value, here we use an optional argument that allows any operation to "fill
in" the result optionally. With this approach, we minimize the change, as the
cases that do need a return value are still rare.

Signed-off-by: Zheng Li <34c6fceca75e456f25e7e99531e2425c6c1de443@zheng.li>

djs55/xenopsd,johnelse/xenopsd,euanh/xenopsd,johnelse/xenopsd,thomassa/xenopsd,thomassa/xenopsd,djs55/xenopsd,thomassa/xenopsd,johnelse/xenopsd,euanh/xenopsd,euanh/xenopsd,djs55/xenopsd