[SPARK-1946] Submit stage after (configured ratio of) executors have been registered

Because creating TaskSetManager and registering executors are asynchronous, in most situation, early stages' tasks run without preferred locality.

A simple solution is sleeping few seconds in application, so that executors have enough time to register.

The PR add 2 configuration properties to make DAGScheduler submit stage after a few of executors have been registered. 

\# submit stage only after successfully registered executors arrived the ratio, default value 0
spark.executor.registeredRatio = 0.8

\# whatever registeredRatio is arrived, submit stage after the maxRegisteredWaitingTime(millisecond), default value 10000
spark.executor.maxRegisteredWaitingTime = 5000
Just for programming simply. :)
If someone would like to implement more backend implementations or change backend.isReady somewhere, they needn't to call NOTIFY().

But, waiting 100 milliseconds maybe too long, is 10 milliseconds OK?