refactor(request): externalize state
fix(request): not returning jQuery promise

The change was discussed in a pairing session with @gr2m.