Refactored header/footer sending code

Refactored the mostly duplicate code in `elwiki/render-page' for
sending the site-wide header and footer into a separate function,
`elwiki/send-site-header-or-footer'.
Fixed typo

Corrected spelling of the NUL character (was spelt "null").
Added missing `require'

elwiki-test did not `require' ert.
Added elwiki-vc test and input validation

* `elwiki/log->alist' now throws an error when `commit-log' does not
  contain 4 fields.

* Added an ERT file for elwiki-vc; only has a test for
  `elwiki/log->alist'.
Renamed elwiki-vc test

Renamed log->alist-test to elwiki/log->alist.
Added elwiki test

Added elwiki/page-name test.
Corrected handler mapping in elwiki-page test.
Refactored send-string function

Changed elwiki/send-site-header-or-footer to
elwiki/site-header-or-footer, which only returns the header/footer as
a string for the caller to send, instead of also sending it itself.
Refactoring

Wrote a separate function that returns the (canonical) path to the
creole directory, so that this code can be tested.  (It was in the
function elwiki/site-header-or-footer).
Added elwiki/send-site-header-or-footer test

Added test for elwiki/send-site-header-or-footer, which fails, even
though the function seems to be correct.  I suspect the way fakir is
used is wrong.
Added to elwiki/send-site-header-or-footer test

Test that elwiki/send-site-header-or-footer returns nil if the header
or footer does not exist.  Also added comments to each chunk of
`should's.
fix a test
Fixed typo

Removed spurious ; (empty comment) from last commit.
Fixed use of elwiki/site-header-or-footer in elwiki/render-page

* Forgot to wrap call to elwiki/site-header-or-footer in (or ... "")
  when changing it to return nil.

* Removed leftover let bindings of wiki-header-file and
  wiki-footer-file.
Added (broken) test for elwiki/render-page

The test still fails, even though the function seems to work just fine
in practice, so the test needs to be fixed, but as we (myself and
NicFerrier) are stumped, I am committing what I have so far.
move the goddamn router to below where it has been used. fgs.
move the router under it's usage.
don't need /wiki/ prefix for all pages... pass in the pathinfo to identify page name
convert outputs to html utf-8
stop sending 0 bytes coz they're killing the stream