My mate's brother is 28, and survived solely on sausages.... although he does like variety in his sausage.
I was a BITCH at 15, but my mum was a PITA good two shoes know it all cow (in my opinion, at that age)... we found peace when she backed off and treated me like a person rather than her child, I instinctively treated her like a person and not a complete witch.
He's not a toddler. He's at an age where its OKAY to be YUGH.
You shouldn't have slapped him, he shouldn't be a twat. You've lowered yourself to his level, fought a battle that you won't win (all this over coleslaw???? WHAT?? My DH will never eat coleslaw, I don't try and force him) so YABU, and so is he.
YANBU for reaching critical mass though, and my mum slapped me at that age too (I slapped her back actually - quite Jeremy Kyle for an nice middle class family) but it did makes us BOTH realise we BOTH had to change. We agreed on important rules, we agree to disagree on things, we agreed what wasn't actually that important and not worth fighting over... um coleslaw for example!
You feed your child a healthy diet when they're young in the vain hope that they'll request spinach when they hit their teens.... your healthy eating efforts have not been wasted, he's healthy thus far, and you're contribution will see him through his pizza and fried shape years... he'll grow up one day and possibly realise that healthy food is actually good.
Until then, do not stand for violence. Lay the law down on abuse. (and likewise agree to never hit him again!) Agree BASIC rules, and leave the coleslaw out of it... you'll be a NAG to him, no matter how right you are he won't listen.
YANBU to be utterly drained. I'm sure my mother was too, but she'd have felt a lot better had she backed off, she did more harm than good. Don't give him free reign, but pick your battles wisely.
Long post sorry..but a 15 year old boy who won't eat veg and had a smelly room isn't a rarity, he can still grow into a decent bloke.