All I have to go on is "I know my boyfriend like the back of my hand" That makes it sound like you creeped him out somehow. It isn't often that a woman creeps a guy out, but when she does, crazy bitch is just what we use instead of the word creep.
Well that depends on what preceded him calling you that. Obviously it's not nice and he shouldn't call you names but if you are super insecure and keeping tabs on him constantly, etc, I can see why he'd get frustrated and lash out. However, he should confront you about the issue like an adult and either get you to agree to tone it down or break up with you.
He is out of line. You are a crazy bitch because you know your boyfriend really well? wtf? I'm surprised you let him talk to you like that at all. You shouldn't be with someone who disrespects you like that. In the other comment you said "he is not the same persone i fell in love with." You love the guy he was, not the one he is now. That means it's time to end things.