DO NOT MERGE: async library redesign

/cc @lampapos 

Annotation processors are not ready yet.
Take a look at `AsyncUserActivity`.

Generally:
```java
class Operations { // may be even an activity or fragment
  @Load Async<List<OrderItem>> orderItems() {
    return implementation;
  }
  @Send Async<OrderSubmissionResult> submitOrder() {
    return implementation;
  }
}

void onCreate() {
  // ...
  // generated class
  OperationsOperator operator = OperationsOperator.build()
      .operations(new Operations())
      .withinActivity(this)
      .get();

  operator.when().orderItemsIsFinished()
      .doOnResult((List<OrderItem> items) -> { /* Display them. */ })
      .doOnError((Throwable e) -> { /* whatever */ })
  
  .alsoWhen().submitOrderIsFinished()
    .doOnResult({ /* Remove that annoying progress bar. */ });

  submitButton.setOnClickListener({ operator.submitOrder(); });

  operator.orderItems();
}

```