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)

This is really weird that we have to hardcode `course_review` and `professor_review` into this generic utility code, and that we have to pass in `user_course_id` into `to_dict`. Please find a way to keep this `map_field` utility method clean of this special casing.