Rename the "path" argument to "name" if it refers to a page name (i.e.
a path) or "fp" if it refers to a filepath.
Don't escape Page.Name when ready to render a HTML template because in
some case this means unescaping in functions.
New method isHiddenName to replace ad-hoc checks for "." prefixes and
the like.
When rendering templates, pass along the directory of the page or data
being rendered and if the required template is found in that
directory, prefer using that.
Diff needs to read the files after renderHtml has already escaped the
page name. Perhaps a different solution would be better: two
attributes for Page and changing all the templates to use the new
EscapedName attribute?