Made ThreadLocal variables for authentication context static so we can avoid hacing to set them on individual AuthenticatedService instances. This means now we only have to call one to authenticate over all services. Refactored to suit.