Voting

Implementation of the Voting and Rating system.
Vote is being created *before* it's authorized. It'd be good to avoid the vote being created in the db if it fails authorization. See here for usage of `current_user.votes.build(...)` instead of `current_user.votes.create(...)`

https://github.com/Bloc/bloccit-with-tdd/commit/003393ddc31a6f781bc8978b95f9411ef156cfad#diff-28572c7c3f75b55711adaebe5c9218c1R22