simplify Vote model methods

three improvements here:
1) simplifies the vote grouping methods
2) updates the story/comment passed as argument, so the resulting upvotes/downvotes can be observed immediately
3) makes the vote_thusly_on_story_or_comment_for_user_because method return the resulting Vote instance

i'll be making use of 2 and 3 in later commits :)

oh and i'm sorry for breaking the karma counter the last time around.