Avoid unnecessary call to ‘continueWithBlock:’ when a task is completed

When a continuation block is executed with a BFExecutor the internal block that makes the actual call check if the continuation block returns a BFTask, if that is the case a call to ```continueWithBlock:``` is made and the completion source is updated accordingly to the result of the task.

This pull request add code to check if the returned task is complete and update the completion source without made an extra call to ```continueWithBlock:```. This increase the performance on memory consumption and execution time. And also make since :)