add downvoting

You can now downvote posts and change a vote you've already cast. If a vote has
already been cast, the AJAX request changes to update the post rather than
create it (following RESTful principles).