Model::transaction

#990 

Imported model transactions from Shopify. Not all of this was written by me, you can blame @kristianpd and @nickjs as well :)

@rmosolgo