readers: Instrument read_file to return Content objects

The assorted generators all use read_file() to read in the file
contents and metadata.  Previously, they sometimes parse additional
metadata, fire off signals, and initialize a pelican.contents.Content
subclass on their own.  We can reduce duplicated code and increase
consistency by shifting all that stuff into read_file() itself, and
this commit is a step in that direction.
readers: Add debugging logging to read_file
readers: Log signal sending for read_file()
signals: Sort signals into categories
signals: Add missing signals

Note that the `pages_*` names are plural , while the `article_*` names
are singular.  I'll fix this once I update the PagesGenerator.
signals: Fix *_generate_* signals -> *_generator_*

For example, article_generate_preread is now article_generator_preread
for consistency with the other preread and context signals.
Move Article metadata extraction from generators to readers

There's no reason why this information should be Article-specific.

This commit breaks the other generators for the moment.  I'll fix them
shortly.
generators: Update PagesGenerator to use new read_file

Also standardize signal names.  If `article_generator_*` is singular,
`page_generator_*` should be as well.  Fix it from the older
`pages_generator_*`.
generators: Convert StaticGenerator to use the new read_file
Remove the FILES_TO_COPY setting

We no longer instantiate the Static object in the StaticGenerator, so
we can't set the save_as argument anymore.  If you want to adjust the
output path, use the upcoming EXTRA_PATH_METADATA setting.
Add the EXTRA_PATH_METADATA setting

Useful for altering static output paths when you don't want to encode
extra metadata in the static file's source path.
Update sample configurations from FILES_TO_COPY to EXTRA_PATH_METADATA
test_readers: Update to new readers.read_file
test_generators: Replace CUR_DIR with CONTENT_DIR for subdir cat. detection

In situations where I've cleared ARTICLE_DIR, I've done so to ensure
that there are no directories that will override the DEFAULT_CATEGORY
due to USE_FOLDER_AS_CATEGORY.
contents: Page fallbacks for context and localsiteurl
content: Don't update static content
settings: Add a warning for folks using FILES_TO_COPY.
readers: Ensure the reader class is enabled before instantiating

Otherwise the MarkdownReader fails with:

  'bool' object is not callable

if Markdown is not installed.

Reported-by: Deniz Turgut <dturgut@gmail.com>
docs/plugins.rst: Document signal name changes
Document path metadata extraction