Trying to extend the Scheduler interface according to the comments at
#19.
Merge branch 'schedulers' of git://github.com/jmhofer/RxJava into pull-229-merge
Add CompositeSubscription

- also a utility method for creating a Subscription around a Future
Change Scheduler implementations to use primary methods

Work done in https://github.com/Netflix/RxJava/pull/229 added the following methods:

- Subscription schedule(T state, Func2<Scheduler, T, Subscription> action, long delayTime, TimeUnit unit)}
- Subscription schedule(T state, Func2<Scheduler, T, Subscription> action)}

These are in fact the primary methods from RxNet (http://msdn.microsoft.com/en-us/library/hh211963(v=vs.103).aspx) and the others are just helper overloads.

It seems it is better to set the precedent to use these 2 methods for actual implementation logic while all other methods are just decorating and forwarding from AbstractScheduler to these methods.

I have updated the various implementations to achieve this.

Unit tests are passing … but we don't have enough unit test coverage so I won't be surprised if bugs are found.
Add unit tests for recursive scheduler usage

These tests came from @mairbek at https://github.com/Netflix/RxJava/pull/229#issuecomment-16115941
Merge Scheduler/AbstractScheduler

- using abstract class for Scheduler for same reason Observable is concrete
- discussed and decided upon at https://github.com/Netflix/RxJava/pull/235
Implement Scheduler method with dueTime

- added method: schedule(T state, Func2<Scheduler, T, Subscription> action, Date dueTime)
Merge pull request #235 from benjchristensen/schedulers-pull-229-merge

Schedulers Interface (Merging and Adding to Pull Request 229)