this way those running the test suite can discover that there are a
bunch of js test groups. New output of `iptest -j` looks like this
```
Test group: kernel.inprocess -------------------------------------- OK
Test group: config ------------------------------------------------ OK
Test group: extensions -------------------------------------------- OK
Test group: lib --------------------------------------------------- OK
Test group: testing ----------------------------------------------- OK
Test group: core -------------------------------------------------- OK
Test group: terminal ---------------------------------------------- OK
Test group: utils ------------------------------------------------- OK
Test group: kernel ------------------------------------------------ OK
Test group: nbformat ---------------------------------------------- OK
Test group: qt ---------------------------------------------------- OK
Test group: autoreload -------------------------------------------- OK
Test group: html -------------------------------------------------- OK
Test group: nbconvert --------------------------------------------- OK
Test group: parallel ----------------------------------------- NOT RUN
Test group: js/base ------------------------------------------ NOT RUN
Test group: js/notebook -------------------------------------- NOT RUN
Test group: js/widgets --------------------------------------- NOT RUN
Test group: js/tree ------------------------------------------ NOT RUN
Test group: js/casperjs -------------------------------------- NOT RUN
Test group: js/services -------------------------------------- NOT RUN
```
both requests take:
- code (up to full cell)
- cursor_pos (cursor offset in unicode characters)
and object_info_replies return a mime-bundle, instead of structured data
On "preset_activated" event, update the value of the maintoolbar select element that lists celltoolbar presets.
When a preset is registered after notebook is loaded, active it if needed.
- set linger on sockets (avoid hang on exit)
- actually close sockets, not just zmq streams (blame pyzmq, aka me)
seems to be necessary for js/notebook/shutdown test to avoid hanging on Python 3.4.