Timeout config, password prompt, better error handling

Sorry for putting so many changes into one PR, but this is what I had to do to get it working for me. I thought It might be helpful to others.

Better Error handling:
Improve error handling to show network errors.

Timeout config:
Add a timeout configuration, this is helpful if you are getting "socket hang up" errors (which were obscured due to previously mentioned error handling).

Password prompt: 
No more need to put your password in the config file. If you leave out the password option it will prompt you at run time.