Add timeout option to uploadFile

The native FileTransfer uploadFile does not have a timeout. Sometimes, this causes my users to be stuck at a waiting screen. The recommended method for a timeout that I have found is implemented in this pull request. I decided to go this route since "abort()" has not yet been implemented