docs/getting_started.rst: Document HTML metadata format
readers: Use regexp groups to match HTML metadata

The new regexp is also more robust.  For example, it allows for colons
and non-ASCII characters in the value.
readers: Use pelican_open() in RawReader.read()

Assuming UTF-8 content is more consistent with existing Pelican code
(e.g. MarkdownReader.read()).
readers: Add JinjaReader for content written in Jinja

Metadata is extracted from JSON front matter when the page is loaded.
This approach was inspired by Jekyll's YAML front matter [1], but
takes advantage of the Python standard libraries JSON parser instead
of requiring the external PyYAML parser.

The page's template is expanded just before writing via a
Page.postprocess hook.  Readers that need this expansion can define
the hook, and read_file() attach it to the new content.  The hook is
run after |filename| replacement and other postprocessing already
handled by Page._update_content().  I expand the template just before
writing (rather than at read time), because the global context is
still being constructed at read time.

[1]: https://github.com/mojombo/jekyll/wiki/YAML-Front-Matter
settings: Expand EXTRA_TEMPLATE_PATHS relative to the config file

I suppose earlier versions of Pelican expected absolute paths, or
assumed that you'd run Pelican from the directory in which the config
file was located.