Ensuring Runnables posted with delay to a Handler are removed when unsubscribed.

This patch ensures the delayed runnables posted to a Handler are properly
removed when Subscription.unsubscribe() is called on the Observable.

The original code returns the subscription from schedule() but is not used
by the callers who instead add the Worker itself as a subsciption.

Signed-off-by: David Marques <dpsmarques@gmail.com>
Using a ScheduledAction in order to ensure correct subscription behaviour.

Signed-off-by: David Marques <dpsmarques@gmail.com>
Join patterns extension for 4..9 and N arity joins.
CRLF fix
Adding ScheduledSubscription to parent in order to properly chain unsubscribe.

Signed-off-by: David Marques <dpsmarques@gmail.com>
Using the correct code style for variable name and removing unused imports.

Signed-off-by: David Marques <dpsmarques@gmail.com>
Bump build tools to 19.1 and android plugin to 0.11

This is to make the project compatible with Studio 0.6.x
Future wil receive NoSuchElementException when the BlockingObservable is empty
RxScala: Simplify doOnCompleted/Terminate, finallyDo callback usage
Allow use of the returned subscription to cancel periodic scheduling

The documentation for schedulePeriodically indicates that the returned
subscription can be used to unsubscribe from the periodic action, or to
unschedule it if it has not been scheduled yet. That was the case only
before the first action took place, and it was then impossible to
unsubscribe using the given subscription, although unsubscribing the
worker did work.
Don't add the subscriber to the manager if it unsubscribed during the onStart call
Merge pull request #1355 from akarnokd/ReplaySubjectDontAddUnsubscribedChild

Don't add the subscriber to the manager if it unsubscribed during the on...
Merge pull request #1347 from samueltardieu/unsubscribe-from-periodic

Allow use of the returned subscription to cancel periodic scheduling
Merge pull request #1321 from dpsm/master

Ensuring Runnables posted with delay to a Handler are removed when unsub...
Merge pull request #1327 from akarnokd/MoreJoinPatterns

Join patterns extension for 4..9 and N arity joins.
Merge pull request #1335 from mttkay/android-gradle-0.11

Bump build tools to 19.1 and android plugin to 0.11
Merge pull request #1337 from zsxwing/fix-toFuture

Make Future receive NoSuchElementException when the BlockingObservable is empty
Merge pull request #1345 from jbripley/doblock-simplify

RxScala: Simplify doOnCompleted/Terminate, finallyDo callback usage
MergeWith, ConcatWith, AmbWith

Single-arity instance versions of merge, concat and amb.
Since we can't use the `merge`/`concat`/`amb` names on both static and instance methods, these have the `With` suffix, which actually reads quite well.

```java
o.mergeWith(o2).subscribe(ts);
o.concatWith(o2).subscribe(ts);
o.ambWith(o2).subscribe(ts);
```

If we feel the need for more arities fine, but I wanted to start simple.

This originated from discussions with @headinthebox and over a year of wanting instance methods for `merge`.
Merge pull request #1357 from benjchristensen/mergeWith-and-friends

MergeWith, ConcatWith, AmbWith