fixed add vote transactional issues. 
specifically made addVote a transactional method, 
made vote an optimistically locked object by adding versionNo
added data constraint that each vote must have a unique
userId/categoryId combo.