Merge pull request #276 from kevinlli/typefix

Make HyperlinkClickHandler.js 100% typed
Only load a class if it has not yet been defined.
Add a the ability to run tests outside of the tests.js script.
This is preparation for using Karma to run the tests.
Add minimal karma tester for PhantonJS.
See tools/karma.conf.js for more information.
Add support for junit output.
Add special check for null values.
In JavaScript, typeof null is "object". The added check avoid treating a null value as an object.
Pass http requests from the tests to a special small server.
Karma has no support for PUT and DELETE. The simplest workaround is to start
as small server and proxy to it for http requests from the tests.
Adapt CMakeLists.txt
Add colour back into the browser test output.
Merge pull request #263 from vandenoever/karma

Use Karma to run the tests and determine test coverage
Move selection related operations into the new SelectionController.js