Progress event api

Trigger `load`, `loadstart`, `loadend` and `abort` and call the associated `on...` attributes. The `error` and `progress` events cannot be triggered with sinon.js, so there is no support for them, which is valid when you look at the spec:https://dvcs.w3.org/hg/progress/raw-file/tip/Overview.html#suggested-names-for-events-using-the-progressevent-interface.

See #257. Can I connect the issue and this pull request somehow?