Moved basic parts of the inner BasicCompletableFuture to AbstractComplet...

...ableFuture for reusing the async implementation in other parts of the sourcebase and fixed bug where the task is longer running the get(long, TimeUnit). Callbacks were not called in that situation.