Allow template dependencies to be specified programmatically

This lets you control the created digest programmatically, for instance
when a different template was selected even though the format and
virtual path are the same.

You, um, could say that this is "dependency injection." :syringe:

Example use:

```ruby
if agent_is_phone?
  # change the generation of the template digest
  CacheDigests.dependencies << "phone"
  # change where the new digest is itself cached
  CacheDigests::TemplateDigestor.cache_prefix = "phone"
end

yield
  
CacheDigests.dependencies.clear
CacheDigests::TemplateDigestor.cache_prefix = nil
```