No longer query the user during transactions.

UninstallList used to quiz the user while inside a transaction. We don't
do that anymore.

The User.YesNo function has been altered to give us a warning if it
detects a transaction in progress, so we can spot this if we ever do it
in the future.

Fixes #334.