Support for directories and page crumbs

This changeset adds support for displaying a directory as an index()
of the files inside it, and also adds "page crumbs" (links to each
component of the path) to each page and directory template.

Also, added a 'SORT' option in config.py; set it to 'title' or
'url' to control the order in which index() sorts pages.
Adding "--no-merges" to git log to fix _history

Merge commits do not generate a change line
("1 file changed, 61 insertions(+), 67 deletions(-)"
as seen in --shortstat). We'll skip those for our
purposes.

Without this change, merges in the history of
a file break the _history view.
Replacing the page list on directory pages with a tree

This changeset will render the list of pages and subdirectories
of a directory as a tree of nested lists, instead of a table.

Also, this changeset changes the fuctionality of the "home" page.
If there exists a page tagged 'HOMEPAGE', that's used for the '/'
url; otherwise, the full tree of lists is displayed.
Merge pull request #9 from handyman5/feature/directory_pages

Support for directories and page crumbs
Merge pull request #11 from handyman5/bugfix/git_history_merges

Adding "--no-merges" to git log to fix _history
Added caching support to wiki.index()

Rather than recalculating the index every time we load a
directory listing or ask for tags, cache it for a while.
Also invalidates the cache for that directory when a change
is saved there.
Merge pull request #10 from handyman5/feature/caching_index

Added caching support to wiki.index()