*: support discovery fallback

1. add a fallback flag
2. newSever returns error
3. proxy is discovery awareness
4. if error is full cluster and fallback is set -> fallback
Well I think it will lead to clearing up the logic in lines 143-151 which is kinda messy.