Added basic up/down voting functionality

  Test are passing.
  May need to provide more test conditions.
How about using `find_or_initialize_by` instead of all these if statements?