Replace Control.Arrow with Data.Profunctor

Fixes the other part of #1351

Every `Arrow` is a `Strong Profunctor`: http://www.reddit.com/r/haskell/comments/1nwetz/lenses_that_work_with_arrows/ccmq2ka. 

I'm not sure removing `Control.Arrow` is justified, but seems to me that it has no use and IMHO backwards compatibility isn't yet enough of a reason for cruft (and `Control.Arrow` isn't very popular). I'd be happy to make this not remove `Control.Arrow` if you disagree.