"He seems to love the opportunity to attack. I need to stop giving him any reason whatsoever to say anything negative or mean to me"
You said it. I think you two are in a stage in which you need more distance. He's evidently in defensive mode, so anything you say will provoke him. Yes, he only cares about himself, but I am sure he also feels guilt and confusion--it's just that he's not saying it.
This is the key: in order for him to open up and be kinder, he must feel you are not blaming him or think he's a horrible person or a drunk or whatever. If he feels you don't like him or his behavior, he will pull away and be defensive. So take some time off if you can, and when you are with him, show him you appreciate him. If he tries to pick up a fight (and he will) don't respond. Leave the room, say you need some time off, whatever. DO not take the bait.
I know this DBing business is "not for sissies." I think it works for some people, but it's not a magic cure. BUT it's the best you can do RIGHT NOW. So give yourself some time, and if it feels right, get back on the DB wagon. If it doesn't feel right, give yourself more time. You'll know if you've given yourself too much time. You'll know it.