(PDOC-17) Add support for YARD tags in puppet code

Prior to this commit, most of the HTML created for documenting
puppet code was auto-generated by YARD, meaning that it was not
always presented in a way that was consistent or easy to read. 

Now we are explicitly defining the HTML and styling that we want
to use when generating documentation for defined types and classes.
This means that we can define exactly how we want the output to look
so that is more compatible with puppet code.

I have yet to add links to any of the details around parameters because it's
not clear to me where those links should go at the moment. It should be
simple to add them though when we decide what we want them to look like.
It looks like this always adds a "Class:" sub-heading, which may be misleading when the object is a Defined Type. One thing to consider is that the top-level header inherited from the Ruby module template will say "Definedtype" or "Hostclass" depending on which code object was processed --- so this sub-heading may be redundant.

However, we could definitely clean that top-level description up a bit. Using a description string like "Puppet Class" or "Puppet Defined Type" will probably make more sense than the internal model names which are a bit archaic.