Move cache to wald.tools and provide a generic class to check if a destination file needs to be rebuilt.
This adds wald.server.rdfservice which deals with the /rdf/ path.

Eventually this module should perform content-negotiation for rdf/,
currently it just generates rdf/context.jsonld and rdf/site.ttl.

This patch includes a bunch of refactoring to deal with dependencies
in generated files.