Upleveled from android port with following commits:
3c1ff16 Andrew Grieve - CB-5762 android: Fix lengthComputable set wrong for gzip downloads
8374b3d Colin Mahoney - CB-5631 Removed SimpleTrackingInputStream.read(byte[] buffer)
6f91ac3 Bas Bosman - CB-4907 Close stream when we're finished with it
651460f Christoph Neumann - CB-6000 Nginx rejects Content-Type without a space before "boundary".
35f80e4 Ian Clelland - CB-6050: Use instance method on actual file plugin object to get FileEntry to return on download
CB-6212 iOS: fix warnings compiled under arm64 64-bit
[ios] Cleanup extra semicolons
[ios] Cast id references to NSURL to avoid compiler warnings (Fixes: apache/cordova-plugin-file-transfer#18)
[CB-5175] CDVFileTransfer asynchronous download (Fixes #24)

Since download can take time, for it to be non-blocking, moved the call to a separate thread.
iOS: Fix error where files were not removed on abort
CB-6422 [windows8] use cordova/exec/proxy
CB-6460: Update license headers
CB-6452 Updated version and RELEASENOTES.md for release 0.4.3
CB-6452 Incremented plugin version on dev branch.
[ubuntu] Update to work with filesystem URLs
support custom headers for FileTransfer::download