(MCO-464) Add a --connection-timeout to client options

This commit adds the --connection-timeout flag and
client_connection_timeout client config file option.

This connection timeout wraps the the call to Connection#connect in the
Client constructor. If non nil value has been specified the Client
object will raise when the timeout has been hit. The old behaviour does
not change if no timeout has been set.

To enable this we have had to change the Client constructor to accept
either a string representing the location of a config file or a map,
where the map is the parsed command line options.

This change should have no impact on previously working code
that used MCollective::Client.
So this is `--connection-timeout` on the cli and `client_connection_timeout` when in the `client.cfg`?