fixes #598

So in case anyone is curious why this was happening:

SQLAlchemy does a lot of caching for performance reasons.  So if you were to say

```python
a1 = session.attendee(id)
a2 = session.attendee(id)
```

then ``a1`` and ``a2`` will literally be the same object, instead of two different objects with the same values.

So in this function, what we want to do is as follows:
* query the attendee from the database
* detach the object so that SQLAlchemy will return a new copy of the object the next time it's queried
* proceed with the transfer, so that our ``old`` and ``new`` objects will be two separate objects, and modifying one won't affect the other

My botched fix a month ago apparently broke this.  Whoops!