Add 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 actually removing `Control.Arrow` here, maybe we should deprecate it?