Allow down votes to create correct vote type

Previously, everything was turned into an up-vote.

Fixes #1112
Restructure vote form

We now pass required dependencies to the construtor rather than
assigning them to the instance kwarg.  See the following gist for a more
in-depth discussion of this topic:
https://gist.github.com/codeinthehole/6178034

Related to #1112