Change Java future observable implementation from blocking to non blocking

This contains a `Scheduler.Worker` instance that never gets cleaned up. It also needs to be registered for `unsubscribe` via `subscriber.add`.