swift-sim: handle empty files (fixes #126)

For ease of selecting headers in tests, they now set a class with the
header name. We might end up using these classes in the application
later.
swift-sim: use Content-Type in putObject (fixes #119)
swift: send string data as Blob in uploadObject

Without this, Firefox unconditionally adds a "charset=UTF-8" to the
Content-Type header when making a PUT request with a string payload.
Sending a blob instead disables this behavior. See:

  http://stackoverflow.com/a/24468295/110204
swift: send custom headers in uploadObject (fixes #127)

We now include the older headers in the PUT request after editing an
object. Without this, the Content-Type and metadata headers disappear
after the edit.
swift-sim: simplify putObject

We now only PUT Blob objects, so we can simplify the method.
Merge pull request #129 from mgeisler/correct-upload-headers

Correct upload headers
swift: add createContainer method
RootCtrl: indent like other controllers
root: allow creating containers (fixes #122)
create-container: add form validation logic
create-container: submit modal when pressing the Enter key

This required making the buttons part of the form: pressing enter in
an input field will trigger the click handler for the first button
inside the form. Changing the structure like this does not affect the
layout since the form element itself doesn't have any styling.
swift: do not transform response in getObject (fixes #132)
Merge pull request #130 from mgeisler/create-container

Allow creating Swift containers
Merge pull request #131 from mgeisler/ignore-content-type-in-editor

swift: do not transform response in getObject (fixes #132)
root: remove inactive download button (#134)

We have no container download functionality yet. We'll add the button
again if #41 is implemented.
container: remove Download and Show buttons (fixes #135)

These buttons make no sense when you select more than one item: they
will simply link to the first item selected.

The same functionality is found by clicking the object and using the
button found on the per-object page.
object: rename Show button to Edit (fixes #136)
swift: do not transform response in headObject (fixes #118)
Merge pull request #138 from mgeisler/misinterpreted-json

swift: do not transform response in headObject (fixes #118)
Merge pull request #137 from mgeisler/cleanup-buttons

Cleanup buttons