Argcache cleanup

Clean up various things in the cache framework.

* Reorganize code; most notably, move `cache_function` from argcache.py to function.py.
* Clean up arg-processing code to use Python 2.7's `inspect.getcallargs` instead of a custom `normalize_args` function.
 * To-do: support *args and **kwargs?
* Remove the concept of ArgCache "uid"; stop checking for duplicate ArgCaches (which used to be a concern with older versions of Django importing everything twice, but not anymore)
  * To-do: determine whether the cache registry can be gotten rid of or simplified.
* Miscellaneous other code removal/deduplication.
`describe_class` is used in `marinade_dish` to stringify model classes. `describe_func` isn't used there directly, but they both have to do with making cache keys, so I thought it was a reasonable place to stick it.

(I couldn't keep it where it was in `function.py` while also moving `ArgCacheDecoator` there, because of circular imports between it and `marinade.py`.)