Prof pages

Ready for a review, some UI elements may be changed but the core seems good. 

Closes #142
Why do we need these counts to be decimal numbers? Are rating counts (from `self.get_ratings_for_course(c)`) not always integers? It's been a while since I've touched this code, so I don't remember :(