Change Java future observable implementation from blocking to non blocking

This should not call `Schedulers.computation()` directly, but the `Scheduler` that was passed in, otherwise virtual time is not possible. This is currently the same as calling `System.getTimeInMillis()` directly since it is hardcoded to a particular `Scheduler`.