Create wrapper for password_reset that activates users [MJ-970]

How do we feel about view wrappers?

All tests pass.
Ah. Forgot about that thing. Probably good to have as it will provide more informative error messages (by retaining the function name and docstring of the wrapped function). 

Are you opposed to:

```python
def activate_user(view_func):
    @wraps
    def wrap(request, *args, **kwargs):
        ...
        return view_func(request, *args, **kwargs)
    return wrap
```
? I'll merge either way, but think that's a bit  clearer, personally, especially with the wrapper function being named so similarly.