PaymentRequests currently support any valid script serialized in the PaymentDetails protocol buffer. Zero value outputs are ignored and not included in the transaction. This means that OP_RETURN scripts are currently supported but they must have a > zero value, effectively destroying the value assigned to that output.
This patch allows zero value PaymentRequest outputs ONLY
if the script is an OP_RETURN. It also requires that all
OP_RETURN outputs be zero value to address the value
destruction issue.