Do XMLHttpRequest shim differently

We are using this plugin on our site currently. We have started using a new vendor that provides anti-scraping services. A component of their service is some javascript that also wants to patch XHR. Their method involves modifying XHR's prototype. The way angular-file-upload-shim works today, their patch does not work.

This PR modifies the way the shim works to make it patch XHR instead of replace it, so that it can coexist with other javascript that also wants to touch the XHR object.

That has received mild but not extensive testing. If bugs are found, we can fix them.

Is this change something you would be interested in merging?