Replaced IncrementalCallback with full RxJava-style Observer support

Breaking change, but worth it, this removes support for `IncrementalCallback` and instead addresses async via an [RxJava-style](https://github.com/Netflix/RxJava) Observer.

Example usage:
```
  interface GitHub {
    @RequestLine("GET /repos/{owner}/{repo}/contributors")
    Observable<Contributor> subscription(@Named("owner") String owner, @Named("repo") String repo);
  }

  static class Contributor {
    String login;
    int contributions;
  }

  public static void main(String... args) throws InterruptedException {
    GitHub github = Feign.create(GitHub.class, "https://api.github.com", new GitHubModule());

    System.out.println("Let's treat our contributors as a subscription.");
    Observable<Contributor> observable = github.subscription("netflix", "feign");

    CountDownLatch latch = new CountDownLatch(2);

    System.out.println("Let's add 2 subscribers.");
    observable.subscribe(new ContributorObserver(latch));
    observable.subscribe(new ContributorObserver(latch));

    // wait for the task to complete.
    latch.await();

    System.exit(0);
  }
```