Add `dimap` to Profunctor

Example:

    scala> val example = (((_: Int) + 1) dimap ((_: MyInt).a, MyInt))(MyInt(100))
    example: MyInt = MyInt(101)
Merge pull request #647 from puffnfresh/profunctor-dimap

Add `dimap` to Profunctor