Teach create_projection_plan to omit projection where possible.
 
 We sometimes insert a ProjectionPath into a plan tree when projection
 is not strictly required. The existing code already arranges to avoid
 emitting a Result node when the ProjectionPath's subpath can perform
 the projection itself, but previously it didn't consider the
 possibility that the parent node might not actually require the
 projection to be performed at all.
 
 Skipping projection when it's not required can not only avoid Result
 nodes that aren't needed, but also avoid losing the "physical tlist"
 optimization unneccessarily.
 
 Patch by me, reviewed by Amit Kapila.
 
 Discussion: http://postgr.es/m/CA+TgmoakT5gmahbPWGqrR2nAdFOMAOnOXYoWHRdVfGWs34t6_A@mail.gmail.com