Complete the PDF support. This adds support for plotting the PDF of a runtime map as a layered PDF (via a layeredpdf request parameter). This is slower than a regular plot (as it does a RenderMap() call for each visible layer), but produces a PDF whose layer structure matches the runtime map and can be toggled on/off in any PDF viewer.

Layered PDF support is not available on the MapDefinition library route. We may look at adding such support in the future.

The kitchensink example has been updated to include layered PDF urls.

Fixes #6