Voting overhaul

Finally got round to making a generic vote object. Also fixed numerous
bugs with votes.
Merge pull request #90 from Person8880/develop

Voting overhaul