generators: Try template name without .html extension first

Then fall back to the old .html extension.  This makes it possible to
include DIRECT_TEMPLATES that aren't HTML (e.g. iCalender files with
an .ics extension).
readers: Remove underscore to make METADATA_PROCESSORS public
readers: Only access METADATA_PROCESSORS once in Reader.process_metadata

This way we only have to look up the key once.
writer: Add ABSOLUTE_SITEURL to local template context

The current approach to relative/absolute URLs is with decorators
around the generator methods.  However, whether you actually need
absolute URLs probably depends on the template itself.  With this
patch we now have two context variables.  Use SITEURL where you want
to leave the relative-ness up to your Pelican configuration.  Use
ABSOLUTE_SITEURL when your template can't handle relative URLs.