Catch self-tipping in set_tip_to; #494

We filter for this in tip.json, which is proper. Still though we want it
to be an exception in set_tip_to itself.
Add session.commit calls to test suite; #494

Once we port set_tip_to to SQLAlchemy these will be necessary for the
test suite to function properly.
Use real exception classes for set_tip_to; #494
Add a test suite for set_tip_to; #494
Add a test suite for get_number_of_backers; #512