Behave better when we cannot connect to a RegionServer.
Behave better when we cannot connect to a RegionServer.

When the code couldn't connect to a RegionServer, it was immediately
retrying all RPCs that wanted to go to this RegionServer.  If the
server in question was down, this led to several retries in a row,
in a tight loop, until RPCs failed because they had too many attempts.
The new behavior now treats a ConnectionResetException exactly just
like a NotServingRegionException and goes through the exact same code
path.  This helps gracefully handle RegionServer failures as the NSRE
handling code path is good at discovering when a region comes back
online.  It also helps quickly catch all subsequent attempts to use
this region and queue RPCs, exactly like in an NSRE situation.

This change also fixes a bug where if the connection to a RegionServer
went down while we have edits buffered for this server, we'd lose those
edits.

Change-Id: I190be53b45f7e0762b42aa2c706bfa14a5687273

hzy001/asynchbase,pythian/asynchbase,nvoron23/asynchbase,tsuna/asynchbase,Flipboard/asynchbase,tsuna/asynchbase,SteamShon/asynchbase,OpenTSDB/asynchbase,OpenTSDB/asynchbase,Flipboard/asynchbase,adityakishore/asynchbase,adityakishore/asynchbase,yuzhu712/asynchbase,mapr/asynchbase,manolama/asynchbase,SteamShon/asynchbase,hzy001/asynchbase,tempbottle/asynchbase,yuzhu712/asynchbase,mway08/asynchbase,manolama/asynchbase,StumbleUponArchive/asynchbase,OpenTSDB/asyncbigtable,tempbottle/asynchbase,manolama/asyncbigtable,Connexity/asynchbase,angushe/asynchbase,angushe/asynchbase,mway08/asynchbase,Connexity/asynchbase,hhshuai/asynchbase,nvoron23/asynchbase,mapr/asynchbase,StumbleUponArchive/asynchbase,hhshuai/asynchbase