Add Transaction.interrupt() to the Transaction API

This allows the user to interrupt a transaction, which is a more
forceful mode of failure that not only marks the transaction as failed
(i.e. such that it will be rolled back) but also causes any subsequent
kernel operations contained within that transaction to throw
an exception.

This functionality will be used as a user-facing query termination
facility.