Think about that sweetheart - find your anger. He's a selfish cheating arsehole who doesn't deserve your love.
I'm well old enough to be your mum, and this was a daughter of mine, I'd have advised her to kick him to the kerb years ago. He knows how much you love him, and he's done nothing but take from you, without offering you any commitment in return.
I know it must be hard - you were basically a child yourself when you got together - but he's showing you who he truly is, and it's not pretty. You found out by accident. This could well have happened before, and he just didn't get caught.
Tell people the truth. You haven't done anything wrong. I don't think anyone will think there is anything "deficient" about you. You may well find they've been wondering why you've tolerated his misbehaviour for so long.
People can't be completely honest with you when you are in a relationship. A dear friend recently took the decision to separate from her husband, after a long marriage. It was only then that I felt able to say to her that I could never understand why a vivacious, fun, outgoing woman like her was married to her complete opposite. She said she settled. Until fairly recently, I thought they were happy.
Look what you have achieved - your own place, your independence. Talk to a counsellor, work this through. Contact your friends and family and lean on them for support. TG you aren't reliant on the piece of shit.