Fix Scan/Reduce/Collect Factory Ambiguity

This puts the seed factory on `collect` and removes it from `scan` and `reduce` due to ambiguity.
See https://github.com/ReactiveX/RxJava/pull/1883 and https://github.com/ReactiveX/RxJava/issues/1881

The `collect` API was already very close so this fixes it to use a seed factory so the signature is now:

```java
public final <R> Observable<R> collect(Func0<R> stateFactory, final Action2<R, ? super T> collector) {
```

I remove the factory overloads for `scan` and `reduce` due to the issue in #1881 related to generics, type erasure and lambdas causing ambiguity and compilation failures.

We may want to add at least a `scan` impl in the future with a seed factory, but it will need a different name if we do such as `scanTo`. I don't want to do that now for 1.0 so we'll need to revisit that for 1.1 with more time to think about it.