Introduce connection timeout

Hi Sergi,

I have added a concept of connection timeout to the library. This is useful if user wants to fail fast when connection can't be established, but still doesn't want to use same (short) socket timeout once connection is established.
I find this useful as I work in an environment with unreliable network, so I was given a number of addresses to FTP server and I need to try them in sequence, but I don't want to wait full OS socket timeout for connection attempt to fail.

Do you think this is useful enough to warrant a pull?

I am happy to update implementation if you have any concerns.

Cheers,
Dali