(PUP-2583) mode attribute of file type does not behave like chmod when given X

When changing permissions with puppet file type and using symbolic permissions e.g: g+rX, puppet consideres everything as directory. Which is wrong, because you can specify different set of permissions for directory and file (triggered by case of the letter you use).

Problem originates in ruby && and "and" operator precedence. Which was incorrectly used in this case.
(PUP-2583) Add example to test for +X mode changes in file types.

Adding an example to test applying mode +X to files.  For files, a mode
change of +X changes the requested executable bit only if there is
already an executable bit set in the permissions.
Merge branch 'pr/2728'

* pr/2728:
  (PUP-2583) Add example to test for +X mode changes in file types.
  (PUP-2583) mode attribute of file type does not behave like chmod when given X

This closes GH-2728.