Ok here's my advice before I head off to work.
This girl broke it off with you. At the moment she holds all the power (she holds even more then she should because you care about her this much, but I can't change that, only you can). You have to understand, that even tho you two are still somewhat friends and get along great, you are her lesser at the moment, you are in her reject bin, and she does not see you as the guy you were when you first met.
When a relationship first starts off, the girl has a high opinion of the guy, and during the relationship, sh!t happens and that opinion goes down. That's when the break up comes.
Now, if you try to get back with her right now, she will most likely reject you, and you will ruin the future chances of hooking back up with her. Why? Because she has a low opinion of you at the moment. She just sees you as a friend, and most likely has some other guy she's interested in. You need to win that interest back first, before you can hook up.
The only way to win that back is to introduce competition. You have to date other women, but you also have to stay close with this one. Keep her as a friend. Go to her when you have relationship problems, use her as an emotional tampon. Make her YOUR afc. Go out with girls that are better looking then her. Remember, she must think that you are a prize. She must see you as a different person then the one she dumped. She will see a different side of you when you are with another girl. She will then wonder how come she never saw it before, and what other things she didn't see in you before. She will start thinking about you again. Then she will start competing with the other girl for your time. Make sure you're nice to her, but never give her the time of the day. Do not neglect your current girl for your ex, because that will give your ex even more power. You have to starve her for attention and make her want you more, but at the same time keep her interested in you. Be her friend, but don't make sacrafices for her, make her make sacrifices for you.
If she ever suggests getting back together, gently turn her down the first time. Tell her that last time you guys dated, you had an amazing connection with her, but she broke it off, and you moved on with your life, and even tho you think she's a great girl, you are not gonna get your hopes up again only to go through the aggrivation of a breakup once again because she can't make up her mind.
Now that you have rejected HER, the ball is in your court, you hold the power now. All you have to do from here is stay close to her, be her friend, and wait. Then once you feel the time is right, spend some time with her, just chilling together, watching tv, start kinoing her, and escalate things. Whatever you do, do not verbally suggest that you should get back together, it has to be a spur of the moment, natural thing.
Now, to pull this off, you will have to get over this infatuation with her. The only way you can attract is if she knows that you have moved on and don't have interest in her. Restoring your interest in her is a challange, and if you don't give her that challange, she wont be interested in YOU. You HAVE to stop caring about her in a romantic way, you have to move on with your life in order to get her back. It's a paradox, but it does make sense.
You are WAY TOO ATTACHED to this girl, sh!t man, you have talked about MARRIAGE and you're 21. She KNOWS that you still care about her, and she KNOWS that you will gladly get back together with her. Since she KNOWS all that, she is seeing other guys, enjoying her life, while keeping you as a BACKUP, in case anything goes wrong with that other a$$hole. You have to crash this little fantasy of her where you're the sucker who's waiting on her while she is off enjoying life. She can NEVER know that she completly posseses you, because the moment she knows that is the moment she loses interest.
If you keep caring about her like you are now, she will see you as a clingy backup, she will not respect you as a potential boyfriend, and she will not get back together with you. So back off, and regain your pride and dignity. Start sleeping with other girls, and stop comparing them to this girl. Do you seriously think that she compares every guy she sleeps with to you? No! She's prolly dating all sorts of different personalities, and exploring her options while she's YOUNG and has the looks to reel in the perfect guy for her. You should be doing the same, but you are not, because this girl has played you so well that you have forgotten to be a free man that's in control of his destiny. Be a man, don't let your motherfvcking feelings control you like this.
Good luck.