Implement dynamic caching

This adds a new cache option of `'dynamic'` which is the default for
development.  It speeds compilation by caching the parsed versions of
each file and only updating them when the last modified times have
changed.
Merge pull request #10 from ForbesLindesay/feature/dynamic-cache

Implement dynamic caching