Handle redirects

Previously, HTTP redirects from services would raise an exception in the client application. By following them correctly, we can move URLs around in services without having to bump applications at the same time.