Restore pre-3.6 compliance behavior for commands promises.

Commands that exit with 0 result in a repaired promise, unless the
return code interpretation is explicitly overriden via body classes
attributes.

This effectively reverts ce463506e4795f1007a31720afd3300de9bca18e,
adds commentary for generations to come.

Redmine #5761

(cherry picked from commit 851527b37cca0bbf3cc55311921bd5c1235f9931)