Business logic to only allow one vote per user per thread

Also gives you `IdeaThread.votes`