Vote abstraction

Significant progress towards fixing #10 and #8

Simply need to create new vote_backends to allow those possibilities