Ensure LookupContext in Digestor selects correct variant

Related to: #14242 #14243 14293

Variants passed to LookupContext#find() seem to be ignored, so
I've used the setter instead: `finder.variants = [ variant ]`.

I've also added some more test cases for variants. Hopefully this
time passing tests will mean it actually works.
Don't pass variant in params, it's ignored

We're setting variant above, in request object directly
Don't create addition vars, use options[] directly
Add variants to Template class
Don't pass hash as keys to #find method
Disable LookupContext's cache when looking for template
Rename _setup_options to _options_for_digest
Set format in finder
Add mocked disable_cache for FixtureFinder
Introduce #with_formats_and_variants to prevent problems with mutating finder object
Merge pull request #14329 from pch/digestor-lookup-fix

Ensure LookupContext in Digestor selects correct variant
Fix the resolver cache and stop mutating the lookup_context

Before we had a bug in the resolver cache so the disable_cache were not
working when passing options to find