3 year olds can be vicious, and it's so hard to not be the shouty mum sometimes but they mirror every little thing we do. Think of it this way, they push us to our limits to see how we respond. If we respond with anger, aggression, frustration then although to us it's that we simply hit our limit, to them it says that this is how we respond if someone pushes us to our limit, and their limit is a lot lower than ours, saying no to chocolate does feel like the end of their little world sometimes.
Violence, is simple. Remove yourself. Walk away, make it clear that you love them and want to help them but you can't whilst they are hurting you.
Screaming, crying, whinging, whining. Largely, ignore! Again, make it clear you love them and when they want to talk to you you're there.
Never make threats about not liking them, not loving them, don't put your emotions on them and tell them they've made you sad, don't threaten them with police/leaving at the road. These things can be traumatising. Our kids don't push us as far as they do out of spite, it's not his character, he's learning about the world and trying to grab control wherever he can, it's perfectly normal for him to push his boundaries, especially at home. If he was like this all the time then maybe it would be an indicator of autism, but the fact he does it with you is because he is LEARNING. Every single word you say and action you take is teaching him how to treat you, how to treat others, how to handle emotions. It's not too late, but you do sound like you're on a dangerous path of trying to 'win' against a 3 year old and trying to bully him into stopping. What he really needs is love, so much love and understanding, and positive behaviour modelling. There's so much talk of letting him get away with it, him feeling loved isn't him getting away with it, don't reward a tantrum for chocolate with chocolate, but don't take away your love and tell him he's nasty. I say this gently, changing you and your husbands behaviour and reactions is the way to change your sons.