When I read that third paragraph, all I can think is "WTF?". Something is definitely not kosher here. Either the two of you aren't as "in love" as you thought, or your best friend isn't a good friend at all, or the whole "no sex until marriage" was a load of crap from her, or any/all of the above. Don't take this the wrong way, but you sound like a horrible judge of character. The "no sex until marriage" followed by "except for us because we are sooo in love" sounds like she is either extremely manipulative or immature.
I think you need sit down and take a really hard look and see if the relationship is really worth saving. It's easy to see relationships through rose glasses while you are in them, and this goes doubly for the person you lost your virginity to. Did she ever adequately explain why she freaked when you asked her to marry you? Why did you refuse to take her back at first? The reasoning behind both those actions speak volumes about you really feel. Has anyone you know commented on your relationship with her? have you asked them?
Secondly, why didn't you arrange for some space after the "friend" incident? She says she feels horrible, but has she actually asked for forgiveness? Because if you are still lashing out, you definitely haven't forgiven her yet. What did the two of you decide to do to help repair the relationship after the breech? (I'm guessing nothing)
Finally, work on how you pick your friends. Don't pick them because they are "funny" or "cool". Those are what your buddies should be. Friends are the ones that help clean up when the shit hits the fan, not use it as a chance to fuck your girlfriend.