Async actions in Redux with Thunk or custom middleware