Add logging when recieved {error, disconnected} to diagnose the cause

This commit adds logging the result of `riakc_pb_socket:is_connected/1`
when Riak CS recieved {error, disconnected} from Riak. This forms a
part of long campaign of connection problem between Riak and Riak CS.
`riakc_pb_socket:is_connected/1` returns `{false, []}` mostly when
TCP connection was closed by Riak - or by Operating System. Sometimes
increasing `somaxconn` or `pb_backlog` helps. If the second element
of the return value, the list of reasons when connecting to Riak
(technically, return value of `gen_tcp:connect` might help diagnosing
the root cause, which is usually outside Riak and Riak CS.

Those logging lines are added to major places where disconneced error
was observed. `riakc_pb_socket` could return disconneced at any call,
potentially, but these logging lines will cover most of them.

[added] This pull request also includes adding switches to change riakc
reconnect and queuing strategy, choosing `queue_if_disconnected` and
`auto_reconnect`, to do trial and errors to know CS's behaviour. The
default behaviour isn't changed.

RIAK-1242
Other workarounds from chat

- `is_connected` helper 

   ```
   case AutoReconnect of true -> riakc_pb_socket:is_connected(..); false -> no_reconnect end.
   ```

- Just add a comment "Use only true in production" at `riak_cs_config:auto_reconnect/0`.