eslint: enforce no whitespace inside lists
eslint: enforce space after keywords
eslint: enforce "one true brace style"

This is just the style that was already used.
eslint: disallow "... else { if (...) { } }"
eslint: disallow trailing whitespace
eslint: set max line lenght to 80 characters
karma: move Travis configuration into config file

This let's us shorten the command lines in the Travis config file and
better reuse/edit the configration later.
karma: run without coverage by default

Coverage generation slows down what is supposed to be very fast
continiously running tests.
npm: add coverage script

This runs Karma and continiously generates coverage data.
travis: send coverage data to coveralls.io

This is a free service that will host the generated coverage reports.
It will also comment on open pull requests with info about the change
in coverage caused by that pull request.

The reports will show up at:

  https://coveralls.io/r/zerovm/swift-browser
readme: add coveralls badge
Merge pull request #14 from mgeisler/coveralls

Send coverage data to coveralls.io
Merge pull request #15 from mgeisler/eslint-extra-rules

Enable some extra ESLint rules
e2e: add end-to-end test for root page

This works by injecting JavaScript code into the running browser to
configure the $httpBackend service.

This is done using the addMockModule protractor method which installs
code to run *before* Angular has been loaded. The code is run before
every browser.get call.

The page much include angular-mocks.js for this to work. This script
is added to the page before each test is run. If multiple tests are
run the file would be added multiple times since the browser doesn't
do a full page refresh between the tests.
e2e: test sorting container listing by count and size

For the size column, we cannot use the by.repeater(...) helper locator
since the column method doesn't work when there's no content to match
on. We select the column by CSS instead then -- this will of course
break if the columns are ever reordered, but the breakage will be easy
fix then.
e2e: move test setup code to its own file

The plan is to slowly build the infrastructure to simulate Swift.
e2e: update protractor version to ~1.0.0

This is to get support for the third argument in addMockModule. In

  https://github.com/angular/protractor/commit/b7afa8791ba9

support was introduced for passing arguments to the initialization
code for the mock module. We will use this to pass in the containers
for the Swift simulator -- today we do this by actually hard-coding
the container list inside the mock module initialization function.

Remember run 'npm update protractor' to install the new version.

The new version of protractor will warn if a locator selected more
than one element. This is why we need to use a more precise CSS
expression when selecting the first table header.
e2e: move $httpBackend configuration inside SwiftSimulator

This moves more boiler-plate code away from the tests and into the
SwiftSimulator. This requires Protractor version 0.23.0 or later,
we're now using 1.0.0.

The special arguments array is a local variable automatically
available within all functions. We must bind it to a local variable to
access in the nested function, otherwise the inner arguments variable
would shadow the outer.
e2e: move getText mapper to top-level

We will soon need this function in other scenarios.
swift-simulator: don't add a catch-all rule by default

You now have to call the commit function to indicate that you're done
adding $httpBackend rules. This function will simply add the /.*/
catch-all rule that allows Angular to fetch templates and other files
from the local server when the tests run.

This was prompted by a desire to call setContainers and other
SwiftSimulator functions more than once. This doesn't work if they all
add the catch-all rule -- other rules added after it will never be
considered since the rules are evaluated by the order they are added.