s/dir/file/
Adds is_cached attribute so that it's clear whether the file has
changed or is being read from cache.  This is already obvious for files
that get fetched via HTTP, but no so clear for local files.

Also, use MooX::Types for some validation and fix caching for
LWP::UserAgent.

Also add tests for caching. :)