Mock ApplicationCache instantiation

Previously, the compile_spec tests allowed an ApplicationCache to be
instantiated.  This then looked to ARGV[1] for the cache directory
which failed in some cases.  This change ensures that a mock
ApplicationCache is created and used.  It also cleans up the compile
API such that an unneeded application_cache_dir is no longer passed
around.

[#51057319]
Merge 51057319-mock-application-cache to master

[Completes #51057319]