Add `weighted_total` functionality and caching

Our application has a need to post upvotes and downvotes, and we want to lump weighted votes in with these counts. I like passing around score/total and calculating votes using those.