generators: Add ContentGenerator subclass

This takes the heavy lifting out of ArticlesGenerator, PagesGenerator,
and StaticGenerator to ease maintenance and promote consistent
handling.
generators: Add content slugs in StaticGenerator for translation
pelican/themes: Update to follow ContentGenerator context changes

Most of the changes involved replacing `article`, `page`, and other
Page-subclass-specific names with the more general `content` name used
by ContentGenerator.

I also removed some trailing whitespace from
notmyidea/templates/index.html.
tests/output: Update test output with ContentGenerator changes

All of the changes are due to different ordering or whitespace
removal.
test_generators: Update tests for ContentGenerator attributes
test_generators: Update MagicMock tests for ContentGenerator internals
test_generators: Fix ARCHIVES_SAVE_AS for ..._templates_save_as_false

This test started showing up as a failure after I fixed the mock
assertion from it's old:

  write.assert_called_count == 0

which was probably just adding another call to the `write` mock.  If
you put a proper test in place, like the current:

  self.assertFalse(bool(writer.mock_calls), writer.mock_calls)

The failure I'm fixing here dates back to at least the current master:

  commit be040715f984ceee69812c081b901653f8f08e08
  Author: Alexis Métaireau <alexis@notmyidea.org>
  Date:   Wed Jan 2 13:46:55 2013 +0100

    remove duplicates

and probably back to the original addition of this test.