Handle invalidation of cached feed mappings

Detect when a feed that we've already mapped has been modified and
reload it the next time a visualization is requested which draws from
it, allowing us to make use of the visualization server with an external
feed-generator which periodically updates the feed files with new data.

Note that the feed generator/updater should stage updates in a temporary
location on the same filesystem as the server's feed-storage directory
and and then move the updated files to atomically replace any existing
file to avoid "tearing" effects or overruns past a file mapping (which
will be caught and recovered from, but still results in an undesirable
500-code return to the client).