Set transactionReference if not set

And change orderId to transactionId.

 - Generate transactionReference if not set
 - orderId -> transactionId
 - pass transactionReference to purchaseResponse
 - fix transactionReference in completePurchaseResponse

Not sure if we should add some random code, but I guess most people either set the transactionId or don't have more then 1 purchase per second.

But this does break the people using setOrderId, or should we add those as methods referencing the transactionId, for BC?