Allow voting on reviews

First draft, posting a PR mainly since I have a few questions, and for some early feedback. 
![rate_reviews_1](https://cloud.githubusercontent.com/assets/2644780/3867707/5265ae9c-200b-11e4-83eb-ac71a6d84bc3.png)

If you wish to use `PUT` here instead of `POST`, make sure the endpoint is idempotent, which it should be. That means if I send the same request twice, it should act the same as sending that request just once. This is the desired behaviour because we don't want somebody to be able to simply replay the request and vote for an item any number of times.

Does the code below have logic to make sure a user can't vote more than once?