FrankWolfe in atom domain for constrained problem - Week 6

As I mentioned in the blog last week, the problem I focused on this week is the FrankWolfe type solver in atom domain for constrained problem. The update step now involves a projected gradient solver onto the l1 ball spanned by previous atoms. According to duchi2008efficient, this is performed efficiently in O(nlog(n)) steps. The implementation of this step is basically done.

I will merge my current code with previous PR, in the coming week. Also, I think I can perform some serious tests on large scale problems. I will try matrix completion tests in the following week. Hopefully, I can get some comparison plots to show.