API Mark Order.Paid=<date> on $allow_zero_order_total

Otherwise the onPayment hooks aren't called, which can lead to inconsistencies in treating orders (e.g. failing to send a valid zero dollar order to a warehouse for processing). "Payment" can consist of more than just a credit card transaction, a voucher which fully covers the order should also be considered payment (@halkyon agrees with this, and @madmatt is on the fence).

Also sets Order.Status='Paid' rather than 'Processing', which is more accurate. The 'Processing' status is described as follows: "Order paid for, package is currently being processed before shipping to customer". This does not apply automatically for zero dollar orders, there's no correlation between an order for zero dollars and the fact that its processed or not.