WIP on js-testing: first successful test

http://www.benlesh.com/2013/05/angularjs-unit-testing-controllers.html was
extremely helpful in getting this to work; I borrowed the jasmineBootstrap.js
file from the Plunker linked in that blog post. Eventually we'll run these
tests via karma and the jasmineBootstrap.js file won't be needed.
WIP on js-testing: Karma conf that works

Run "karma start" in the test/ directory, then run "karma run" from
another terminal window, and the test will run. Or you can also do
"karma start --auto-watch" in the test/ directory, and it will rerun
the tests when any of the watched files change. ("The watched files"
means whatever is listed in karma.conf.js under "files").

Note that no runner.html file is needed for this; karma supplies its
own HTML to the browser. All you need is to supply the Javascript
files that define the tests, and the code under test, and Karma does
the rest.
Don't need runner.html now that we're using Karma

The jasmineBootstrap.js file is also unnecessary when Karma is running
our tests; Karma handles all necessary bootstrapping.
Switch to using PhantomJS as the testing browser

The build server doesn't have X installed, so we need a headless
browser for testing. PhantomJS fits the bill perfectly.
Add documentation on setting up server for testing
Add links (in comments) to two handy blog posts

I haven't gotten around to writing tests for Angular directives or
services yet, but when I do, I'm going to want those URLs handy as
reference material. Might as well save the links now.
Make "ant test" run Karma as well as PHP tests
wip #28: Json decoder/encoder.
Add E2E configuration for Karma, currently unused

No tests use this yet, but when we do write some end-to-end tests, we
can use this configuration to run them. Note that the configuration may
not work in its current form: depending on what Javascript files the
E2E test needs, the files list might need to be edited to add those
necessary files. The rest should work fine.
Merge branch 'feature/js-testing'
Run karma with absolute path rather than from PATH
Split JS and PHP tests into separate Ant targets

Also provide a "test" target that runs all tests, for convenience when
running ant at the commend line. The TeamCity build will call both
steps separately, though.
Don't specify absolute path, use searchpath="true"

Since karma might be installed elsewhere than /usr/local/bin, it's
probably better to let Ant search the PATH variable for it instead
of specifying its location absolutely.
Revert to specifying absolute path

This reverts commit b075a99429252810911a08f3dcd4ed7c76f59d80.
Bump karma logging level to LOG_WARN, not LOG_INFO

Now that tests are (mostly) running, we don't need to clutter our
logs with quite so much output.
Add instructions for TeamCity setup

TeamCity needs /usr/local/bin explicitly added to the PATH for its
build agents, otherwise Karma will fail with errors about not being
able to find node.js or PhantomJS.
Merge branch 'feature/js-testing'
wip #28: Introduce MongoEncoder / MongoDecoder
wip #28: Id changes
wip #28: Add CodeGuard::checkTypeAndThrow(...).