Fix retry counter behavior.

If you use 'retry' as a decorator, turns out you can't instantiate the retry
counter outside the definition of the wrapped function that you return.
Otherwise that one counter instance gets bound to the decorated function. Then
if you do

@retry
def f():
    ...

every successful execution of f() increments the same retry counter. Bad news.

Fix this, and remove the ability for now to pass a customizable retry counter
at all. We aren't using it at the moment, and doing so is clearly fraught with
peril.