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?
I'd rather leave this as it was. 

To me it's confusing to call setTransactionId() in order to set the orderId property on the request.