(PUP-30) Add Puppet templates

This adds puppet template and heredoc support to the puppet language. Most of the implementation (in
the lexer and parser) was already on master, but the top level was missing:

* ast model expressions
* grammar
* epp, and inline_epp

as well as tests of the features as the appear to a user.