(PUP-2727) Make new keywords acceptable as attribute names.

Puppet allows keywords as attribute names in defines and
parameterized classes. This was missing for the added keywords:
* FUNCTION
* ATTR
* PRIVATE
* TYPE

Which caused a clash with existing types.

This commit adds the new keywords to the list of accepted words
in the grammar.
Merge pull request #2748 from hlindberg/PUP-2727_keywords-clash-with-attributes

(PUP-2727) Make new keywords acceptable as attribute names.
Merge branch 'master' of https://github.com/puppetlabs/puppet