swift: add uploadObject method
container: add single-file upload (fixes #42)

This uses the HTML 5 file API to read the local file before sending it
to the server with a PUT request. As such, this only works on IE 10+
and other modern browsers:

  http://caniuse.com/#feat=fileapi

To support older browsers, we would have to use the Form POST
Middleware for Swift, please see #62.

The UI is very basic, see #66 about using a button with better
styling.
swift-simulator: add support for PUT
upload: add e2e test for upload modal
swift-mock: test isolation between tests

We want individual it-blocks to begin with a fresh state. This is
actually ensured by the call to browser.get, which is what triggers a
page load and makes Protractor load the mock modules.
swift-simulator: extract accountUrl function
swift-simulator: extract regexp escape function
swift-simulator: handle non-existing containers

The connnect static server we use for testing return a 500 error for a
GET request to a path like 'index.html/foobar'. We now catch these and
return 404 like the real Swift does.
swift-simulator: handle listObjects with no query string

Before, the listObjects call failed when it tried to access
params.prefix.length. We now default prefix to ''. Further, delimiter
defaults null, which works with indexOf(params.delimiter).

This is now tested with a dedicated test.
swift-simulator: test deleteObject returning 204
swift-simulator: test deleteObject returning 404
swift-simulator: test deleteObject with non-existing container
Merge pull request #71 from mgeisler/upload-modal

Upload functionality
Merge pull request #72 from mgeisler/test-swift-mock

Test SwiftSimulator
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.