replaced in-line HTML with Go's html/template

now using view.html and edit.html to generate the final markup to be
served to clients.
Refactored the template render code

pulling out common code from editHandler and viewHandler
Now handling non-existent pages

a request for /view/NotFound is made, the server responds 302 to
/edit/NotFound to create the page.
Improved error handling / reporting
Storing templates in-memory to avoid re-generating

the results of template.ParseFiles is stored in a variable templates.
This improves the performance of the code by eliminating the need to
read view.html and edit.html from disk on each request.

The cost of this change is that the server must be restarted in order to
reload changes to view.html and edit.html, where previously they would
be reloaded on next request.
Validating the tite of the page viewed/editted

the page title must conform with the regexp [a-zA-Z0-9]+
if the regex doesnt match, a 404 is returned.
Refactored the page title validation.

now instead of viewHandler, editHandler and saveHandler duplicating the
same code, a closure (makeHandler) has been created which will check the
title from the URL against the validating regexp and pass it into the
correct handler (eg. viewHandler)