Handle failed file uploads

Although successful file uploads trigger the `didUploadFiles` function, failed uploads do nothing. The `xhr.onerror` event handling that was in place was only handling network errors. Things like 400 response codes didn't update the `uploadStatus.error` property.

Although I would prefer to call a function like `uploadAllFiles` and get a promise back (not possible now that the function is a controller action), it seems like the functionality changed at some point from that to an action, so I didn't want to revert the behavior, assuming there was some reason for that change. Instead, now when the ajax request fails, the `uploadStatus.error` property is passed arguments provided by the `jqXHR.fail` callback.

This PR includes the fix, new tests for both ajax success and failure cases, and an error handling example in the readme. It also includes some other minor documentation fixes to the readme.

Note: I had to update the `sinon_server` dependency, but bower didn't have the required version, so I pointed at the sinonjs site for it. Not sure if there is a better solution for that, short of getting someone to update the bower repo for it.