Adjust the frontend tests:
* Use --ci mode, failing on previous snapshots
* Use --coverage, to generate coverage reports, and place them in a temp
directory
* Use the default reporter, so test results are shown in CI output
Add a convert_frontend_coverage step that uses `sed` to add `frontend/` to
the coverage file paths, and the Ruby tool `coveralls-lcov` to convert
to the coveralls JSON format.
Use the Python `coveralls` tool to merge the backend coverage data with
the frontend JSON coverage file and upload to coveralls.io