(GIT-386) Validate that mode attributes are strings

This commit introduces two new issues. One potential problem for
cases where a non-octal integer literal is used as a file mode
and one stylistic issue for the case where an octal integer literal
is used. The latter is stylistic since the value is correct but
the recommendation is to always use a string.

A quick fix is added for both problems. It converts the value to
a single quoted string and adds a leading zero if that is missing.

Both the potential problem and the stylistic issue can be controlled
with a settable preference. The default value for the problem is
ERROR and WARNING for the stylistic issue.
Merge pull request #46 from puppetlabs/issue-386

(GIT-386) Validate that mode attributes are strings