Merge pull request #661 from wking/settings-abspath

settings: Fix abspath existence check for path settings
test_contents: Add tests for metadata export from Page.url_format
Merge pull request #663 from wking/url-format-metadata

contents: Page.url_format should expose all metadata
content: Convert StaticContent.filepath to .filename

For reasons that are unclear to me, StaticContent introduces the
`filepath` attribute rather than using the existing (and semantically
equivalent) Page.filename.  This has caused confusion before [1], and
it's probably a good idea to merge the two.

While I was touching the line, I also updated the string formatting in
StaticGenerator.generate_output to use the forward compatible
'{}'.format() syntax.

[1]: https://github.com/getpelican/pelican/issues/162#issuecomment-3000363
content: Convert Path.filename to .source_path

Making everything consistent is a bit awkward, since this is a
commonly used attribute, but I've done my best.

Reasons for not consolidating on `filename`:

* It is often used for the "basename" (last component in the path).
  Using `source_path` makes it clear that this attribute can contain
  multiple components.

Reasons for not consolidating on `filepath`:

* It is barely used in the Pelican source, and therefore easy to
  change.
* `path` is more Pythonic.  The only place `filepath` ever show up in
  the documentation for `os`, `os.path`, and `shutil` is in the
  `os.path.relpath` documentation [1].

Reasons for not consolidating on `path`:

* The Page elements have both a source (this attribute) and a
  destination (.save_as).  To avoid confusion for developers not aware
  of this, make it painfully obvious that this attribute is for the
  source.  Explicit is better than implicit ;).

Where I was touching the line, I also updated the string formatting in
StaticGenerator.generate_output to use the forward compatible
'{}'.format() syntax.

[1]: http://docs.python.org/2/library/os.path.html#os.path.relpath
doc: convert Markdown example to source_path and modernize
tests: Update tests after filename/filepath -> source_path
utils: Add deprecated_attribute decorator
contents: Add deprecation warnings for Page.filename and StaticContent.filepath
tests/support: Factor LogCountHandler testing out into LoggedTestCase

To avoid duplicating boilerplate when we need to test logged messages
outside of TestPelican.
test_utils: Add log count checks to test_deprecated_attribute