Tweaks to casperjs tests

* Using print() in tests
* The JSController shouldn't launch its server on creation, only as and when we go to use it.
* Some refactoring - my intention is that `test_sections` specifically describes nose test suites, with things like module inclusions and exclusions, and potentially other options in the future. The controller is the object that knows about running tests using a command line, so that's where information should be stored in the more general case. Each PyTestController corresponds to one TestSection, because we need that information on both sides of the process barrier.