Reset password signs the user in

Closes #4196
- Also cleaned up some .then(f, h) to .then(f).catch(h) in setup controller
@jaswilli You still helped me realize something!  `.then(a).catch(b)` is `.then(a).then(null, b)` which != `.then(a, b)`. In the last, `then(a, b)`, b will *not* handle errors in a, it handles errors in what comes before that `then`. So, thanks for that. Now i have to look at the code and try to understand what i changed...