support the `tippee` argument of `set_tip_to()` being a `Participant`
optimize clear_tips_{giving,receiving}
fix atomicity of clear_tips_{giving,receiving}
update uses of set_tip_to() to give Participant instead of username
cache giving, pledging and receiving amounts in the participants table
remove Participant.get_dollars_* functions
small refactoring
rewrite queries to use the cached amounts
fix bad uses of set_attributes()
don't query the DB when we already have the Participant
add a few tests