Moves redirect logic into listeners, so that redirects are returned more quickly at the kernel.request stage, instead of going through all the other irrelevant stages first