Add error to `GetServerFromRequest`

Also as soon as we find the server we now return it. Previously
we were continuing looping through. Now if we find the server
we return it when we find it. We return nil as an error if we
find it. If we do not find it then we return nil as the *Server
and an error.