Factor out all the Handlebars templating logic
Factor out all the Handlebars templating logic

Once all the naming logic was consolidated and rearranged, it became
apparent that all the tag generation logic could be boiled down to
processing the same rendering context across a collection of
templates. Previously, this was difficult to see, and we had a mix of
Handlebars and `format!` calls.

One thing to note is the new `safe!` helper macro. Though everything
is now Handlebars processing - a fallible process - not every
rendering is actually expected to be fallible in practice, since we
actually control all the inputs to the process in several cases. The
`safe!` macro helps to clearly mark these cases.

Signed-off-by: Christopher Maier <b4598f17a90ef80817bae8ad6c37249740caafb4@chef.io>

rsertelon/habitat,habitat-sh/habitat,habitat-sh/habitat,habitat-sh/habitat,rsertelon/habitat,habitat-sh/habitat,rsertelon/habitat,habitat-sh/habitat,habitat-sh/habitat,rsertelon/habitat,habitat-sh/habitat,rsertelon/habitat,rsertelon/habitat,rsertelon/habitat,habitat-sh/habitat