Future callbacks aren't obligated to receive arguments

(Signals already worked this way)
"Failure" objects can be Errors, ErrorEvents, or Strings

(Non-Error failures will be converted to Errors)