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)