[SPARK-2187] Explain should not run the optimizer twice.

@yhuai @marmbrus @concretevitamin
Is it?  Have we fixed all the bugs where generating a plan actually fires off Spark jobs?  :P