IkiWiki::Render: make 'scan' idempotent

If it does nothing when a page has already been scanned, we can use it
at any time to force a page to be scanned. In particular, the
templatebody plugin is going to need this.
add readtemplate hook
Add templatebody plugin and directive, and enable it by default

Also add a regression test for templatebody.
Use templatebody for the templates in the basewiki and docwiki
Track whether we're in the scan or render phase

In the scan phase, it's too early to match pagespecs or sort pages;
in the render phase, both of those are OK.

It would be possible to add phases later, renumbering them if necessary
to maintain numerical order.
Assume that every page has been scanned by the time the scan phase ends

This doesn't prevent memory from being used to track what we have
and haven't scanned, but it does make it temporary. The existing
%rendered hash, which is filled afterwards, will be larger than %scanned
in practice anyway: %scanned will contain an entry for each page
that changed, plus an entry for each template used by templatebody,
whereas %rendered will contain an entry for each page that changed
plus an entry for each page rendered due to links or dependencies.
Merge branch 'ready/templatebody'
changelog, close bugs