Return the original auth error if we can't find a server to join with
If the homeserver isn't able to find another server to send the join request to (as should be the case in most local-only join attempts), we would previously send a 500 error, even if the more correct response would be M_UNAUTHORIZED (e.g. if the user tries to join an invite-only room).
So, when we have a more specific error and we can't find a server to send the join request to - return that specific error.
This fixes #85 (closed) in a highly minimal way (and seems like the right thing to do, too!)