I don`t think Joel is a villain or a hero, all he done after losing sarah and meeting Ellie was to keep living, killed to live. And the kills he done after Ellie was to keep her safe. Very simple and understandable.
Killing to keep alive and for revenge is different stuff, but yes I totally understand Abby killing him even without seeing flashback. Even Ellie say it would be impossible to know which group Abby was because Joel had so many enemies.
Without getting into details, I'd just recommend checking out this tvtropes link on villain protagonists. I think you'll find it hard to disagree. He embodies all the characteristics of a villain, and at best is typified as a sociopathic hero who crosses the line into full villain upon killing Marlene.