support for xhr uploads.

Extracted the ProgressEventTarget interface into a superclass since both
XMLHttpRequest and XMLHttpRequestUpload objects emit the same series of
events (loadstart, progress, load, abort, loadend)