Kill ParametrizedSingleton in esp.cache.argcache

This was a workaround for an issue with Django double imports that no
longer exists.

TODO: do something about the cache registry, which assumes cache UIDs
are unique (which was enforced by ParametrizedSingleton)
Kill cache_by_uid
Kill argcache uid entirely
Remove unneeded import
Fix signature of ArgCache.delete_key_set

There is actually no reason to use **kwargs here.
Move cache delete signal to cache.signals.cache_deleted
Reorganize code in ArgCache

ArgCacheDecorator: argcache.py -> function.py
describe_func/describe_class: function.py -> marinade.py
Clean up arg-processing code in ArgCacheDecorator
Remove dangling reference to deleted function in marinade.py
Merge remote-tracking branch 'origin/main' into argcache-cleanup

Conflicts:
	esp/esp/cache/argcache.py

(conflict with removed imports in 6db42ed)
Add todo comments for describe_func
Add comment explaining a potential args/kwargs problem
Clean up describe_func stack inspection

Separate out the stack-inspecting sketchiness into another function,
get_containing_class. Use this inside @cache_function to get the
enclosing class, but allow it to be overridden when called from other
decorators such as @cache_inclusion_tag and @cached_module_view.
Merge pull request #1294 from learning-unlimited/argcache-cleanup

Argcache cleanup