(PUP-2080) Reinstate function as a QNAME

The 'function' word was accidentally made a literal value when the
function in the puppet language changes were removed. It should have
been a QNAME, since that is what bare words are. This allows it to once
again be used as the name of a class, for instance.
Merge pull request #2562 from zaphod42/issue/master-pup-2080-function-is-a-qname

(PUP-2080) Reinstate function as a QNAME