DRY up voteable models, extract methods to Voteable module