Add timeout and no upload options(again)

1, no-upload option will skip upload speed test. This could be useful when there is little need to do uploading.
2. timeout option will set the defaulttimeout for socket. The default timeout(None) is too long when bandwidth is low.

This is a duplicate of #48, but that pr is for master branch.