Reorganize code in ArgCache

ArgCacheDecorator: argcache.py -> function.py
describe_func/describe_class: function.py -> marinade.py
Clean up arg-processing code in ArgCacheDecorator