Easy hack: write up a "receipt" containing whatever info you want (payer, payee, what payment is for, etc). Hash it, turn that hash into a bitcoin address, and add that as a tiny 0.001 BTC output to the TX.
In retrospect it would have been wise for TX structure to contain a memo field, to bridge from the world where smart-contracts are possible to the rest of the world where some kind of human/out-of-band parsing is needed.
Hash functions are irreversible by definition.
Yes however if your provided the seller or a third party the same information they could recreate the hash
For example if a transaction to your Bitcoin address includes an hash that can be produced by hashing the following mesage:
"This is a payment from DeathAndTaxes to notme" then it is kinda hard for (or someone else) to lie and say that transaction was from someone else.