swift-sim: move $httpBackend config into commit

This is in preparation for making the simulator a real Angular service
that can keep some persistent state.
swift-sim: make SwiftSimultor an Angular service

This makes the simulator a singleton for the test run. Instead of
repeatedly configuring $httpBackend, the backend is now configured
once at the test start and the response functions consult the current
this.containers and this.objects as needed to compute their responses.

This makes it much easier to examine the state of the simulator at
runtime since the state is visible instead of being hidden inside
$httpBackend.
swift-mock: remove now obsolete commit function

Now that we compute the responses on the fly, the commit function is
no longer needed.
swift-sim: make listObjects a method
swift-sim: make listContainers a method
swift-sim: make deleteObject a method
swift-sim: make putObject a method
swift-sim: whitespace
swift-mock: really enforce test isolation

The tests were not really isolated before -- a 'foo' container added
in one test was visible to later tests. We now reset the state when
the mock is loaded.
swift-mock: clear mock modules

Modules registered with addMockModule stay for the entire duration of
the test run. So when each test adds more and more mock modules, we
end up executing the code again and again.

We now clear the existing list of mock modules when the swift mock is
injected. The mock is then only loaded once. Furthermore, containers
and objects are then also only configured once.
eslint: forbid iit and ddescribe

These globals can be used temporarily while developing to only run a
single describe- or it-block. However, we don't want them to go into
the main repository.
Merge pull request #73 from mgeisler/eslint-no-iit

eslint: forbid iit and ddescribe
Merge pull request #74 from mgeisler/swift-sim-service

Make Swift simulator an Angular service
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.