Implement dynamic text-replacement macros

A macro, in wiki markup terms, is a piece of markup which does a string replacement at page render time with a dynamically generated piece of HTML.

This patch also includes an example implementation of a very simple "list all pages in the wiki" macro, called AllPages.