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
Only a grance at riakc_pb_socket so maybe I'm wrong.
If `auto_reconnect=true`, riakc_pb_socket seems to reply `{error, timeout}` to the caller and dies.
If it is correct, the call `is_connected` results in `noproc` exception and `Reason` is swallowed (not output to log).

This may not cause an issue if the switch `auto_reconnect`, which becomes configurable by this PR, is only for developers and not for production.