Fixes badge transfers

Quick fix to let badge transfers actually work. Partially addresses #598.

The emails are still weird, though, and the history still isn't saved.
I'm a little wary of deploying this because the ``expunge`` was there because of the semantics of how SQLAlchemy does caching (which I'll explain as soon as I have a few minutes to spare).  If you've tested this out and think that it's okay to deploy then go ahead and do it.  Otherwise I'll go through what we need to do later this afternoon.