Possible fix for CB-7415: Implement a more feature complete implementation of ProgressEvent

* Reuse native ProgressEvent if supported
* Partially or completely pollyfill ProgressEvent if required
* Support assigning the target event property via the event dictionary (needed by File plugin's FileReader/FileWriter.js)