swift-simulator: correct handling of prefix

Before, a request with prefix=foo and an object named foo/bar.txt
would result in '/bar.txt' being returned.

This is incorrect since Swift really returns 'foo/' in that case. In
general, objects and subdirs are always returned using their full
name, so we should not cut off the prefix like we did.
swift-simulator: only add a subdir once in listObjects

Before, we would add {subdir: 'foo/'} twice when a container had two
objects named foo/a.txt and foo/b.txt.
Merge pull request #68 from mgeisler/trailing-subdir-slash

swift-simulator: correct handling of prefix
upload-modal: rename Cancel to Close

This is really a close button. We will soon be keeping the modal open
after the files have been uploaded (to show the status of each upload)
and this button will then be used to close the window.
upload-modal: use styled button for adding file (fixes #66)

The file input element is now hidden. We cannot interact with hidden
elements from Protractor, so we need to make it visible before we call
sendKeys on the element.
upload-modal: support uploading multiple files at once
test: extract uploadFile function
upload-modal: test upload of multiple files
upload-modal: update UI immediately when a file is added

Before, the UI would only update when the next digest cycle was
triggered, typically after another click in the browser.
upload-modal: use jQuery shortcut

We depend on jQuery so we can use this shortcut.
upload-modal: test that selected files are shown
upload-modal: test that selected files remain unsorted
upload-modal: support selecting multiple files at once (fixes #75)

There doesn't seem to be a good way to test this with Protractor since
Selenium doesn't support this yet:

  https://code.google.com/p/selenium/issues/detail?id=2239
swift: use $upload.http for uploading files

This is to get support for upload progress. The ng-file-upload package
will monkeypatch the XMLHttpRequest a little so that it can get access
to the XHR created by $http. It needs access to it so it can attach an
onprogress event handler.

We're not currently using anything else from ng-file-upload.
upload-modal: show progress bars when uploading (fixes #76)
upload-modal: avoid reuploading files

This partially addresses #78: simply clicking the upload button after
uploading a file again will no longer do anything. However, it doesn't
fix the case where the user uploads a file named 'foo' to a container
already containing a file with that name.
upload-modal: disable upload button when all uploads are done
upload-modal: support removing files (fixes #79)