Fix for RxJava 0.18.+

## Needs review.

This adds a `RetrofitScheduler` which is loosely based on the [NewThreadScheduler](https://github.com/Netflix/RxJava/blob/master/rxjava-core/src/main/java/rx/schedulers/NewThreadScheduler.java) but alows us to provide the Executor.

I was not sure the direction the Square guys want to go with this. So apologies if it does not follow your guidelines, I'll happily change/move stuff.

I moved the `RetrofitScheduler` into package safe `Schedulers` class to hide and share the API in the `RestAdapter` and `MockRestAdapter`.

Few questions still outstanding:

- Is `Schedulers` the right place for the `RetrofitScheduler`? Not sure if there would ever be more than one?
- The `RetrofitScheduler` does a type check for `ExecutorService` but thats not guaranteed. Should we force `ExecutorService`?
- `MockRetrofitScheduler` seems to do waiting of its own, Is there a reason we need to use the `httpExecutor` or could we just use `rx.Schedulers.newThread()`?
- Should we implement the `schedule` method in the `RetrofitScheduler`, I feel that any timing based observable work should not be passed to the Retrofit ThreadPool.

I was toying with a way to allow users to pass through a `Scheduler` to Retrofit, but I think that would be unnecessary as we can just call retrofit service synchronously.