Support ordering pages and articles by metadata attributes and sorting functions

This fixes #420.

This change makes the default sorting order for pages their filenames (new). The default sorting order for articles is still by slug (same as before). But you can tweak how either is sorted in your `pelicanconf.py`. For example:

    PAGE_ORDER_BY = 'page-order'

In this case, just make sure that all pages have the metadata attribute 'page-order'. 

Advanced: You could also use a sorting function. See the code for an example, as a sorting function is used to get filenames based on the `source_path` attribute of content.