Add $emitted events to uploader service

Thanks for making this module available... it was (almost) exactly what I needed!

I added some events to the service, because I needed my parent controller to be able to tell the status of the upload:

- **s3upload:start**
-- Sent when an upload is started.  Gets the xhr as an argument, so the controller has the option to cancel the transfer in in progress.
- **s3upload:success**
- **s3upload:error**
- **s3upload:abort**
-- These messages also pass the xhr as an arg.  S3 responds with 204 (No Content) on a successful upload.
- **s3upload:progress**
-- receives the same argument as the promise notification: ```{type: 'progress', value: scope.progress}```