[SPARK-4307] Initialize FileDescriptor lazily in FileRegion.

we probably don't need 2 VisibleForTesting constructors, do we? If someone wants to provide an explicit Executor, they can damn well create their own TransportConf. This is only done in a single unit test anyway.