curried Free#zipWith for type inference

before

```
scala> val a = Free.liftF(Option(1))
a: scalaz.Free[Option,Int] = Suspend(Some(Return(1)))

scala> a.zipWith(a, (x, y) => (x, y))
<console>:18: error: missing parameter type
              a.zipWith(a, (x, y) => (x, y))

scala> a.zipWith(a, (x, y: Int) => (x, y)) // need explicit type annotation
```

after

```
scala> val a = Free.liftF(Option(1))
a: scalaz.Free[Option,Int] = Suspend(Some(Return(1)))

scala> a.zipWith(a)((x, y) => (x, y))
res0: scalaz.Free[Option,(Int, Int)] = Suspend(Some(Suspend(Some(Return((1,1))))))
```