Fix template name reporting for #include and #parse if an exception occurs. Error reporting in Velocity tends to use context.getTemplateName() which is intended for scoping information, and does not always provide the template name containing the node or directive that generates an error. This adds a templateName field to the Directive object and assigns it on creation, if a template name is available.
Also added template and location info when logging errors thrown from #parse. This compliments the pseudo-stack trace that is already logged to error for macros. So, now a complete trace is logged to error of the macro and template layers with template name and location. Yea!