Add support for dependent pages

Instead of returning a string of html, you return a map:

 {:contents "the html",
  :dependent-pages {"/uri" "contents"}}

These dependent pages are then also served and exported.

This allows you to keep your page-creation logic sane while
creating subpages for them, especially when using lazy evaluation of
pages with the get-page feature.
Uhm, scratch that. I initially read the code with the wrong expectations... I was originally thinking this:

Everytime a page is served, the `pages` map (atom) may be updated. So serving an already generated dependent page is not a special case. It's just a page.

If that was true, the call here to `try-serving-dependent-page` **would** be the last ditch attempt. Right now, it's not, because dependent pages are always handled as a special case.

If we're going forward with dependent pages as a special case, I wonder if we could make the logic easier to follow if the following is apparent in `serve-pages`:

1. We serve a page
2. OR we serve a dependent page
3. OR we have nothing to serve, so we try to realize all the pages and re-attempt serving a dependent page

I'm not sure though. Thoughts?