function transaction(fn, getDebugName) {
    const tx = new TransactionImpl(fn, getDebugName);
    try {
        fn(tx);
    }
    finally {
        tx.finish();
    }
}
Starts a transaction in which many observables can be changed at once.
{@link fn} should start with a JS Doc using `@description` to give the transaction a debug name.
Reaction run on demand or when the transaction ends.